J’ai converti ce blog de ISO-8859-1 en UTF-8 cet après-midi pour pouvoir afficher correctement les caractères arabes, chinois, japonais, coréens, …
Important : Ne pas faire plus d’une fois cette conversion !!!
En cas de problème, restaurez votre base de données à l’aide du plugin Operation MySQL et vérifiez que le fichier conf/dotclear.ini comporte bien une ligne
dc_encoding = ISO-8859-1
(voir vers la fin du fichier). J’ai testé ce retour en arrière sur un blog de test et tout est revenu comme avant sans problèmes.
Pour cela j’ai effectué pour cela les étapes suivantes :
- Fermeture des commentaires et des trackbacks pour éviter de nouvelles entrées pendant la conversion. A faire à l’aide du plugin Configuration de DotClear
- Sauvegarde de la base de donnée à l’aide du plugin Operation MySQL[1]
- J’avais quelques pages connexes que j’ai éditées pour remplacer tous les caractères accentués par leurs équivalents HTML. Par exemple un
é
devienté
. Cela permet d’avoir des pages indépendantes du jeu de caractères utilisé[2]. N’oubliez pas de vérifier et si nécessaire de corriger le fichier related.ini qui peut comporter des caractères accentués ! - Idem pour tous les fichiers du thème (si nécessaire).
- Conversion des tables de base de DotClear et changement du jeu de caractère utilisé pour le blog à l’aide du plugin Conversion UTF-8. Si vous avez effectué correctement le point 2, il n’est pas nécessaire de sauvegarder une nouvelle fois la base de données, mais ça ne mange pas de pain, on peut le refaire sans crainte.
Arrivé ici, une bonne partie du travail est fait. Il faut maintenant s’occuper des tables utilisées par certains plugins. Pour cela j’ai développé vite fait un petit plugin[3] qui s’occupe de la conversion des tables utilisées par les plugins suivants :
- dcCC — Creative Commons files creator for DotClear,
- Citations — Insertion d’une citation aléatoire,
- Jour J — Permet d’intégrer une liste de jours J dans votre blog,
- Galerie — Intégrez une galerie à votre blog,
- Métadonnées de billets — Informations supplémentaires concernant vos billets,
- Sondage — Un gestionnaire de sondage,
- Shoutbox — Affiche une tribune,
- Veni Vidi Vici — Gestion d’une liste de films, livres et autres médias favoris.
Ce plugin doit être adapté en fonction des tables supplémentaires que vous avez. Une fonction de conversion convertTable()
est là pour faire le boulot, et attend trois paramètres :
- Le nom de la table,
- Un tableau contenant la liste des champs à convertir — a priori tous les champs textes de la table,
- Un tableau contenant la liste des champs clés — a priori il y en a un seul (en tout cas dans chacune des tables que j’ai du convertir).
Après ces quelques détails, on continue :
- Une fois le plugin installé et adapté (fichier index.php du plugin), allez sur sa page d’administration et effectuez les étapes une par une jusqu’à la fin. Arrivé là toutes les tables doivent être converties.
- Un petit test du blog pour vérifier que tout va bien et puis on ouvre à nouveaux les commentaires et les trackbacks à l’aide du plugin Configuration de DotClear. Au passage j’ai corrigé la description du blog qui est stockée dans le fichier de configuration de DotClear et pas dans la base.
Voilà c’est tout :-)
Notes
[1] Pour conserver une version ISO-8859-1 de cette sauvegarde, j’ai modifié le nom de la sauvegarde pour qu’elle ne soit pas écrasée par une suivante faite le jour même. Pour cela, j’ai rajouté -iso
devant le .sql.gz
.
[2] Une liste relativement complète des équivalents HTML se trouve ici.
[3] Attention ce plugin est un dérivé du plugin de conversion officiel et je n’ai pas pris soin de mettre en place tous les libellés utilisés. Ceci-dit pour un plugin qui ne doit servir qu’une fois, on ne va pas faire la fine bouche.
1 De Pierre VG -
je vois que tu utilises le plugin dcCC. peux-tu me dire à quoi il sert ?
sinon, quel plugin utilises-tu pour ta gallerie ? merci
2 De Franck -
Pour le plugin dcCC, il permet de définir les différentes licences Creative Commons applicables aux contenus de ce site dans l'entête des pages. Par exemple la page que tu es en train de consulter contient :
Pour la galerie j'utilise le plugin Galery de Dsls.
3 De Pierre VG -
ça s'ouvre avec quoi le .rdf ? on y met quoi dans ces fichiers ? ils sont générés comment ?
4 De Franck -
Les fichiers rdf sont générés par le plugin dcCC. Ces fichiers s'ouvrent entre autre avec n'importe quel éditeur de texte. Il s'agit en fait de fichiers XML.
5 De Romuald -
Il est à noter que pour que l'affichage se fasse dans toutes les langues, l'installation des Global IME de Miscrosoft (pour les crosoftiens) est indispensable... En savoir plus sur UTF-8 et autres codages : -> Wikipédia.
6 De Vu et entendu... -
Migration Terminée avec Succès :-)
Il faut dire que j'ai suivi avec application Cette petite Check List indispensable et que le plugin développé pour l'occasion - Toujours ici ;-) - M'a été bien utile moyennant quelques modifications pour l'adapter à mes différentes tables...
7 De みなとみ -
みなとみ
8 De Franck -
Ce qui veut dire en anglais (si Google traduit correctement) :
9 De ledruide -
convertion en utf-8
Je devais le faire depuis quelque temps déjà, et l'annonce d'Olivier Meunier concernant la prochaine version de dotclear me laisse à penser qu'il faut que je me prépare un peu en avance. En effet, la prochaine version de dotclear sera entièrement...
10 De philippe -
il n'est pas dit qu'il faut aussi modifier l'encodage dans le head de template.php, c'est une erreur de ma part ?
11 De philippe -
c'est une erreur de ma part, désolé pour le bruit, et merci pour ce petit tuto ;)
12 De Franck -
Pas de souci, je me suis posé la même question à l'époque ;-)
En effet, c'est renseigné directement par DotClear, il n'y a rien a toucher pour ça.
13 De Guillaume -
Bonjour
Je voulais convertir mes tables de plugin, mais j'ai cette erreur avec le plugin de tortuegt
Fatal error: Call to a member function on a non-object in /var/www/free.fr/0/6/guillaume.bizet/blog/ ecrire/tools/utf8convertext/index.php on line 37
la ligne 37 c'est :
while (!$rs->EOF())
que faut il que je fasse
Merci
14 De Franck -
Attention, j'ai écrit ceci :
"Ce plugin doit être adapté en fonction des tables supplémentaires que vous avez. Une fonction de conversion convertTable() est là pour faire le boulot, et attend trois paramètres :
Donc il y a un peu de travail à faire dans le moteur !
15 De hipop -
Voilà un outils bien pratique qui converti les lettres accentués en entités html : Conversion caractères speciaux
16 De blog.imprimante -
J'ai fait l'erreur d'installer le mode UTF-8 sur mon blog Dotclear. En fait je n'ai pas besoin de caractères étrangers et ce codage 16/32 bits me semble vraiment difficile à gérer. Est-ce qu'il est possible de repasser en ISO-8859-1 ??
17 De Franck -
Pourquoi difficile à gérer ? Normalement l'UTF-8 se comporte comme un ISO pour tout les caractères qu'on utilise habituellement en France !