latin1 -> utf-8 migration
Bonjour,
Je dois migrer les données d'une base latin_german_ci vers une base utf8_unicode_ci. Le fichier d'importation créé est en utf-8. L'importation est réalisée avec succès en local.
Donc j'ai l'ancienne base dont les données ont été passées correctement en utf-8 (résultat dans la db et dans un affichage web).
Pour la migration de l'ancienne vers la nouvelle base, Je fais un SELECT sur l'ancienne base, récupérées les données sont traitées par PHP et je réinsère dans la nouvelle base.
Voici la configuration de mon serveur :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| SELECT _utf8'é', _latin1'é', ORD(_utf8'é'), ORD(_latin1'é') ;
Résultats :
é é ORD(_utf8'é') ORD(_latin1'é')
é é 50089 195
***************************************************
SHOW VARIABLES LIKE '%char%';
résultats:
Variable_name Value
character_set_client utf8
character_set_connection utf8
character_set_database utf8
character_set_filesystem binary
character_set_results utf8
character_set_server latin1
character_set_system utf8
character_sets_dir c:\wamp\mysql\share\charsets\ |
Mes pages php sont enregistrées dans le format utf-8, la balise
Code:
<meta http-equiv="content-type" content="text/html; charset=utf-8">
est déclarée et ma première requête spécifie le format des données traitées.
Code:
mysql_query("SET NAMES 'UTF8'");
Bref, je crois que tout y est et pourtant...
Voici ce que me donne une requête d'insertion tel que je l'envoie dans ma nouvelle base :
Code:
1 2
|
INSERT INTO aff_adresse (fk_id_iso,rue,num,bte,cp,localite,commune,province,pays,date_creation,date_update) VALUES ( '5', 'rue du march�', '10', '', '7100', '', 'LA LOUVIÈRE', 'Hainaut', 'BE', '0000-00-00 00:00:00', '2007-11-13 10:27:03' ) |
le 'é' de 'rue du marché' est remplacé par � mais pourtant la localité qui comprend un accent est correcte!
Je ne vois pas d'où cela peut venir... Qqun pour une idée?
Deuxième question : existe t'il une fonction me permettant de connaître le type d'encodage utilisé pour un mot?
Troisième question : quelle différence y a t'il entre utf8_unicode_ci et utf8_general_ci???
Merci déjà à tous ceux qui participeront à ce post!