Vous avez probablement commencé à utiliser SPIP dans le jeu de caractères iso-8859-1
, qui correspond à l’intallation standard. Mais ce jeu est limité aux caractères occidentaux, et voilà que votre site doit devenir multilingue ; il est temps de passer à utf-8
. Pour en savoir plus, vous pouvez lire Voyage dans la tour de Babel du net.
Remarque : à ceux qui s’inquiéteraient des risques d’un tel changement : d’après mon expérience sur des sites comment www.spip.net ou www.monde-diplomatique.fr, personne ne s’est plaint. Cela signifie donc que les navigateurs qui ne sauraient pas lire l’utf-8
ne sont plus du tout en circulation. (Bien entendu, ce n’est peut-être pas le cas dans des applications très spécifiques.)
- Commencez par vérifier vos squelettes. Ceux-ci ne doivent en effet contenir aucun caractère accentué sous forme « brute » : il faut donc éliminer tous ces « é » des squelettes, et les remplacer par leur entité html, é
... il faut ensuite vérifier qu’ils contiennent bien, dans la partie <head>...</head>
, la ligne suivante :
<meta http-equiv="Content-Type" content="text/html; charset=#CHARSET">
- Procédez à une sauvegarde de la base de données. Selon la méthode habituelle, au format dump.xml
ou dump.xml.gz
.
- Convertissez la sauvegarde au format utf-8
.
Pour cela, installez le script ci-dessous dans le répertoire ecrire/
, puis ouvrez la page avec votre navigateur, et suivez les instructions (une nouvelle authentification ftp est nécessaire).
Vous pouvez suivre l’opération de conversion (qui peut durer plusieurs minutes sur un gros site !) en regardant le fichier ecrire/data/spip.log
: il doit se terminer par une mention « conversion effectuée ».
Si la conversion a fonctionné normalement (sans timeout), vous pouvez réimporter la base ecrire/data/dump-utf8.xml
. (N’ayez crainte : si le résultat ne vous convient pas, il sera toujours temps de réinstaller la sauvegarde dump.xml
.)
N. B. : si votre base de départ n’était pas en iso-8859-1
, les résultats seront imprévisibles, et sûrement pas très bons :)
- Configurez le site. Rendez-vous dans la configuration du site, partie « Gestion des langues », et indiquez à SPIP que le charset de la base est désormais utf-8
. (Cette option n’est disponible que si vous êtes en interface complète).
- Videz le cache. Il est impératif de vider le cache, sinon certains navigateurs n’arriveront pas à afficher des pages se présentant comme de l’utf-8
(d’après les nouveaux réglages de SPIP) mais contenant des caractères iso-8859-1
(encore présents dans les « vieux » fichiers cache).
Discussions par date d’activité
17 discussions
J’ai passe mon autre site en UTF-8, mais il n’y a aucun serveur qui va permettre un temps d’execution de 10 min. J’ai du faire le tout en local puis de telecharger le fichier dump-utf8.xml (30Mb) par ftp sur le serveur.
Répondre à ce message
L’opération s’est globalement bien passée.
J’ai eu quelques souscis avec les symboles € (ils ont disparu des articles suite au passage en utf-8 / j’ai rajouté les € a posteriori).
Plus quelques apostrophes « fantôme » (dans certains articles et pas tous : bizarre). Les apostrophes apparaissent normalement sauf lorsque l’on veut modifier l’article, ces apostrophes disparaissent dans l’interface d’édition. Si on rajoute les apostrophes manquantes et que l’on valide, on se retrouve finalement avec deux apostrophes !
A part cela, RAS.
Merci pour l’info.
Ton site était probablement en iso-8859-15 ? Ces caractères-là n’existent pas, pour ce que j’en ai compris, en iso-8859-1.
Répondre à ce message
Nouvelle version du script :
— compatible
windows-1256
;— suivi de la conversion dans le fichier
spip.log
Répondre à ce message
Tout a marché comme sur des roulettes
...
mis à part que tout le contenu de mes champs extras a purement et simplement volé dans la manip.
Y’a plus un champ extra rempli :D
Le problème n’est pas énorme vu que j’ai mon site en double, commencé depuis peu, et que je peux repiquer « à mano » les infos ... mais si j’avais eu 2 ans de saisie de champs extra ... j’aurais à coup sûr fait une crise cardiaque !
En tous cas, voilà une initiative d’uniformisation des langages (codage et lecture) heureuse.
Bien à tous
Soÿ
Répondre à ce message
Comme je l’ai écrit le 6 mai, la conversion s’est faite sans problème... Sauf que j’ai découvert depuis que les stats du site sont vidées avant le 6 mai... dommage.
Tu as vidé ta base avant de recharger la sauvegarde ? La sauvegarde ne contient pas les stats ? Hum...
Je confirme : la sauvegarde ne contenant ni les statistiques, ni les référers, ni les messages privés :
— ceux-ci sont détruits si tu effaces la base ;
— les messages privés ne sont pas convertis en utf-8.
(Ce commentaire correspond à toutes les version de SPIP, au 12 mai 2004 ; ça pourrait évoluer par la suite).
Répondre à ce message
OK merci FIL, on va essayer de rebabeliser ... mais ...
qq chtites kouetches :
- pourquoi faut-il nettoyer les caractères accentués dans les skelettes et pas seulement dans le DATA ?
- si je lis bien ton script, il faudrait également modifier le
A propos du bidule XML, c’est inutile (juste une fioritue que j’ai ajoutée dans le code).
A propos des squelettes, j’ai oublié de signaler dans l’article qu’il fallait vérifier que les squelettes contiennent bien la ligne précisant le #CHARSET : je l’ajoute.
merci pour l’info sur le META CHARSET, j’aurais du y penser :-/
.. tiens moi aussi je bosse (HI ...partiellement) :
j’ai trouvé une table de correspondance qui m’apparait complète pour les utilisateurs de l’iso-latin (à tester par les pro, je ne suis pas pro) :
- http://www.trucsweb.com/HTML/trucs....
(PS : un remarque destinée au ouèpmestre de spip-contrib (je la vois car je suis dans le formulaire-forum : ne serait-il pas interessant d’avoir ET l’article originel ET le commentaire auquel on répond A COTE à Gauche, au lieu de n’avoir seulement que l’article originel EN DESSOUS ??
... et une liste des smileys, tant qu’on y est, non ? ;-) )
Pour moi, tout s’est passé sur des roulettes !
Suggestiuon concernant le texte (!)
Bref, deux fois
ecrire/data/dump.xml
. Il manque un petit .gz...J’avais dit que c’était pour fignoler ;-)
Répondre à ce message
.... tiens voilà le résultat ... grrr heureusement que c’est un de mes qq sites de test ;)
- ... j’ai modifié les skel
- ... j’ai chargé le changer_charset
- ... j’ai fait mouliné ( zéro pb)
- ... j’ai paramétré le uft-8 dans le site
- ... j’ai vidé le cache ( il y a eu un plantage page inaccessible) et j’ai revidé (il laissait tous les skel_machin.php3, avec un .htaccess) puis à la main => totalement vide
- ... j’ai réindexé
Mais pourquoi #CHARSET s’affiche-t-il en clair dans la page, hein ?
... peut-être que c’est tout simplement la moulinette qui a coincé (site en 1.7.1) ?
car j’ai constaté qu’un clone du site sur la même base sql était devenu illisible avec ses anciens skel resté en iso-latin avec un SPIP également resté en iso-latin
http://www.burtega.net/eva7/article...
(... un bon vieux skel EVA de derrières les fagots )
j’ai recommencé la restauration du dumputf8 à la main .. ; et apparement rien n’y fait ( ou alors j’ai fait une grooooossière erreur vu l’heure tardive (le #CHARSET est pourtant installé) ???
Ce qui est curieux est que le rubricage fonctionne bien dans le menu déroulant à droite et que l’encodage fonctionne avec les liens en dur [ :/
... mais que le rubricage de l’ancien skel Eva (iso) est lui perturbé... je vais me coucher ;)
.. ; je retenterai la moulinette demain, bonne nuit ...des fois SPIP ça s’arrange tout seul pendant la nuit ;)
je suis hebergé sur PHPnet/OVH
infophp
@+ (soupir déçu .. ; comme pour spikini ...)
Ah oui, tu utilises
<INCLURE(metatags.html)>
; si tu veux avoir une chance de fonctionner, déjà cela devrait être<INCLURE(metatags.php3)>
.Répondre à ce message
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
Merci d’avance pour les personnes qui vous aideront !
Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.
Suivre les commentaires : |