Author: Jonathan Ballet Date: To: moebius CC: Liste Guilde Subject: Re: mysql et utf8
Le Sun, 15 Oct 2006 10:40:47 +0200,
moebius <moebius1@???> a écrit :
> Bonjour,
Salut,
> Ayant "par hazard" (oui, je sais ....) migré de mandriva à ubuntu,
> j'ai dû régler des problèmes d'encodage puisque je suis passé
> automatiquement de latin1 à utf8.(convmv est très bien, surtout ne
> pas utiliser l'outil graphique "utf-migration-tool" qui ne fonctionne
> pas) Prob avec mysql : je dois convertir mes bases en utf8, convertir
> et non spécifier le codage, c'est bien d'une altération physique que
> je parle ! Je sais, il y a la fonction mysql CONVERT() ; le prob est
> que l'exemple donné dans le manuel est avec une chaîne de caractères,
> et moi je voudrais convertir toute une base.
> Quelqu'un a-t-il une idée de la syntaxe d'une requête me permettant de
> convertir tous les champs textes (CHAR, VARCHAR...) de toutes les
> tables (ou d'une seule table, je peux faire ça à la main :) ) d'une
> base ? Bon à la limite une requête pour un seul champ texte d'une
> table m'irait aussi ! Je précise que les fichiers sont au format
> MYISAM (*.MYD et *.MYI pour les index) et que je connais iconv, mais
> que ça me paraît une solution un peu sauvage sur un fichier qui n'est
> pas du texte pur...
Je dirais que rien ne t'oblige à convertir _aussi_ tes bases MySQL : si
ton système est en UTF-8, rien ne t'empêche d'avoir des données
stockées dans l'encodage que tu veux dans la base.
Après, si tu veux vraiment tout convertir, je pense pas qu'il y ait
d'outils automatique qui fassent ça (pour les raisons ci-dessus).
Par contre, tu peux peut-être esssayer de faire un dump de tes bases
(au format SQL), avec mysqldump, puis de passer un coup de iconv dessus.
Attention, je garantis pas du tout le résultat, mais je vois pas trop
d'autres moyens.
Tu peux toujours essayer sur une base de secours ;)
Et si tu recharges ensuite le dump modifié dans une nouvelle base,
oublie pas de modifier le schéma de la base :
- création de la base au format UTF-8
- création des tables au format UTF-8 également