OVH Community, votre nouvel espace communautaire.

Comment utiliser l'UTF-8


enycu
13/04/2007, 18h55
On peut faire la conversion d'une base d'une manière beaucoup plus propre, moins bricolée, et sans erreur avec un script php:
Code PHP:
//** Modifiez vos parametres MySQL **//
$db_server   "ServeurMySQL";
$db_name     "NomDeLaBaseSQL";
$db_username "IdentifiantSQL";
$db_password "MotDePasseSQL";
$db_charset "utf8"//* mettre utf8 ou latin1 *//
//** C'est tout. Placez ce fichier par FTP quelque part sur votre serveur Web, dans un endroit discret. **//
//** Puis ouvrez-le avec votre navigateur web et suivez les instructions. **//

echo "Ce script cree une sauvegarde de la base de donnees avec l'encodage du jeu de caracteres $db_charset .  \n
\n
Le fichier de sauvegarde est au meme endroit que ce script.  \n
\n
"
;
echo 
"Votre base est en cours de sauvegarde.......\n
"
;
if (
system("mysqldump --host=$db_server --user=$db_username --password=$db_password -C -Q -e --default-character-set=$db_charset $db_name | gzip -c > $db_name-$db_charset.sql.gz"));
echo 
"\n
"
;
echo 
"C'est fini. Vous pouvez recuperer le fichier de sauvegarde. Il s'appelle: $db_name-$db_charset.sql.gz\">$db_name-$db_charset.sql.gz (faites un clic-droit, et enregistrez sous... , ou enregistrez la cible du lien sous...) \n
\n
N'oubliez pas d'effacer ce fichier de votre serveur par FTP car il contient des mots de passe.\n
\n
"
;
?>
Ce script force la conversion avec l'encodage choisi et fait une sauvegarde (dump) de la base. Donc, si votre base est en latin1, elle sera convertie en utf8. Puis, importez la base avec phpMyadmin ou l'excellent bigdump (http://www.ozerov.de/bigdump.php) en choisissant le bon encodage de caractère.

izzyway
13/04/2007, 14h58
Pour passer la base en UTF-8 d'une maniere plus simple.

#1. Export de la base dans le fichier import.txt
#2. Lecture du fichier import.txt avec NotePad
#3. Utiliser option Fichier -> Enregister sous et modifier le Codage pour mettre "UTF-8".
#4. Import de la base avec le nouveau fichier ainsi créé.

Remarque: N'oubliez pas d'effacer les données avant l'import.

friendfor
04/10/2006, 17h06
Bonjour,

Voici la solution:

Part I: Comment avoir la db en UTF-8

La solution est tres simple, mais il faut la remarquer.
Quand on se loggue sur phpMyAdmin, on peut choisir l'encoding.
Il faut donc choisir Francais(UTF-8) a la place de Francais (Iso-8859-1) qui est selectionner par defaut.

Les caracteres entres precedemment apparaitront bizarrement. C'est normal, ils etaient encodes en iso-8859-1. Il n'y a que l'affichage qui a ete modifier.


Part II: Comment modifier ce qui etait la precedemment en UTF-8

La solution que j'ai trouvee estt un peu compliquee. Si qqn a une solution plus simple je suis preneur.

1. Il faut se logguer en ISO-8859-1 (ou le charset que vous utilisiez auparavant)
2. Il faut exporter les donnees.
3. Il faut vous connecter sur une db personnelle(non-OVH), non bridees par OVH. Sur celle-ci vous pouvez selectionner l'encoding utiliser dans les fichiers d'import.
4. Recreez la structure de votre table, en utilisant le charset utf8
5. Importez les donnees sur la base personnelles(non-OVH)
6. Exportez les donnees
7. Logguez vous en utf8 sur la base ovh
8. Importez vos donnees.


Part III : Comment utiliser l'UTF8 sur votre site.

Verifiez que les donnees apparaissent correctement en db en etant connecter en UTF8.
Modifiez le tag de vos pages (html-php...). Vous devez avoir :charset=UTF-8

Rechargez vos pages. Tout doit etre correct maintenant.


F.A.Q.:
1. Je me suis logguer en UTF-8, mais mes caracteres apparaissent bizarrement dans PhpMyAdmin.
- Les caracteres etaient probablement encodes precedement en iso-8895-1. Il faut modifier l'encoding de vos donnees(voir Part II)

2. Je me suis logguer en UTF-8 et mes caracteres apparaissent correctement en db, mais ils sont bizarres sur mon site.
- Votre site n'est probablement pas en UTF-8. (voir Part III)

3. Je me suis logguer en db, et les caracteres apparaissent correctement, mais sur mon site en UTF-8 ils apparaissent bizarrement.
- Vous n'etes probablement pas connecter en UTF-8 sur phpMyAdmin(voir Part I)

4. Je suis connecter en db en iso-8859 et mon site est en iso-8859. Tout semble correct.
- C'est normal, mais vous etes limiter dans les caracteres que vous pouvez utiliser.


Pour resumer, la db UTF-8 sur le site UTF8, la dbISO-8859 sur le site ISO-8859