Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Débuter
Débuter Forum d'entraide pour débuter avec MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/05/2011, 15h01   #1
Invité régulier
 
Inscription : mai 2011
Messages : 8
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : mai 2011
Messages : 8
Points : 5
Points : 5
Par défaut migration de base de donnée problème d'encodage et de jeux de caractères

Bonjour,

Voici mon petit soucis, je souhaite faire passer la base de données (en iso8859-1) d'une application web (wikka wikki) sur un autre serveur. Lors des tests sur les pages de l'applications web les "è" par exemple deviennent des "é". J'avais déjà eu ce problème lors d'une précédente migration (que j'avais réussi à résoudre ) mais là je n'ai pas réussi à trouver la solution. Voici la procédure que j'ai suivie:

La base mysql à migrer est sur une debian (UTF-8):
Sauvegarde:
Code :
mysqldump --default-character-set=latin1 ma_base >sauvegarde.sql
Si je vérifie l'encodage du fichier:
Code :
1
2
file -i sauvegarde.sql
: text/plain; charset=iso-8859-1
Donc c'est bon

J'envoi le fichier via un scp vers l'autre système (Archlinux -> UTF-8):
je reteste le fichier au cas ou:
Code :
1
2
file -i sauvegarde.sql
: text/plain; charset=iso-8859-1
Donc c'est encore bon

Je crée une base de donnée avec l'encodage latin1 par défaut:
Code :
1
2
 
CREATE DATABASE ma_base DEFAULT CHARACTER SET "latin1" COLLATE latin_swedish_ci;
J'importe les données:
Code :
mysql -u root -p  wikka --default-character-set=latin1 < sauvegarde.sql
Et pourtant j'ai toujours ce problème d'encodage à l'affichage des pages web ( j'ai pourtant ça dans le header <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">)

Si dans le doute je vérifie les encodages de la base:
Code :
1
2
3
4
5
6
7
8
9
 
SHOW FULL COLUMNS FROM wikka_links;
+----------+-------------+-------------------+------+-----+---------+-------+---------------------------------+---------+
| FIELD    | Type        | Collation         | NULL | KEY | DEFAULT | Extra | Privileges                      | Comment |
+----------+-------------+-------------------+------+-----+---------+-------+---------------------------------+---------+
| from_tag | varchar(75) | latin1_swedish_ci | NO   | PRI |         |       | SELECT,INSERT,UPDATE,REFERENCES |         |
| to_tag   | varchar(75) | latin1_swedish_ci | NO   | PRI |         |       | SELECT,INSERT,UPDATE,REFERENCES |         |
+----------+-------------+-------------------+------+-----+---------+-------+---------------------------------+---------+
2 rows IN SET (0.00 sec)
Je vois que la base est bien en latin1.

Donc voila, si quelqu'un pouvait me dire ou je me suis planté, ça m'aiderais bien.

Merci
Silkmoth est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2011, 17h00   #2
Invité régulier
 
Inscription : mai 2011
Messages : 8
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : mai 2011
Messages : 8
Points : 5
Points : 5
Bon,

non seulement, apparement ça ne passionne pas grand monde, mais en plus j'ai fait un test sur mon navigateur en le forçant à lire ma page en UTF et ... tout s'affiche correctement.

Je suis largué toutes mes données sont en iso8859-1 mais j'arrive à les voir en UTF-8.

Alors est ce que c'est lié à la configuration de l'encodage pour les clients (apparement on peut les paramètrer) qui par défault seraient en UTF-8. Ce qui ferait que quand l'appli se connecte pour lire les données, elles les récupère en UTF-8???

Ou alors mon problème est ailleurs (apache/php)?

Merci
Silkmoth est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2011, 17h28   #3
Invité régulier
 
Inscription : mai 2011
Messages : 8
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : mai 2011
Messages : 8
Points : 5
Points : 5
Bon,

je rajoute une information qui peut être sera utile: Les serveurs n'ont pas la même configuration , à ma grosse surprise le serveur mysql sous debian squeeze n'est pas en UTF-8 (par défaut je n'ai fait aucune modification)

Code :
1
2
3
4
5
6
7
8
9
10
mysql  Ver 14.14 Distrib 5.1.49, FOR debian-linux-gnu (i486) USING readline 6.1
 
Protocol version:	10
Connection:		Localhost via UNIX socket
Server characterset:	latin1
Db     characterset:	latin1
Client characterset:	latin1
Conn.  characterset:	latin1
UNIX socket:		/var/run/mysqld/mysqld.sock
Uptime:			7 hours 40 min 40 sec
Contrairement au serveur mysql sous archlinux:
Code :
1
2
3
4
5
6
7
8
9
10
mysql  Ver 14.14 Distrib 5.5.12, FOR Linux (x86_64) USING readline 5.1
 
Protocol version:	10
Connection:		Localhost via UNIX socket
Server characterset:	utf8
Db     characterset:	utf8
Client characterset:	utf8
Conn.  characterset:	utf8
UNIX socket:		/var/run/mysqld/mysqld.sock
Uptime:			39 min 17 sec
Donc nouvelle question:
est ce que l'origine de mon problème ne viendrait pas de la?
Si oui suis je obligé de passer mon serveur mysql en ISO-8859-1 sur Archlinux, l'option default-character-set ne devrait elle pas normalement prendre le pas sur la configuration générale et me renvoyer des données en ISO-8859-1?

Merci
Silkmoth est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h28.


 
 
 
 
Partenaires

Hébergement Web