Encoder son site en UTF-8… entièrement!
31 03 2010
Si j’ai encore passé presque 2 jours à me prendre la tête, cette fois-ci ça n’est pas à cause d’un bug. Non, tout allait très bien jusqu’à ce que je tombe par hasard sur un article parlant d’encoding UTF-8 avec MySQL. Et là, j’y ai découvert le chaînon manquant : l’instruction permettant de spécifier que les communications avec MySQL se font en UTF-8.
Car il ne suffit pas d’encoder sa base en UTF-8 en spécifiant l’interclassement des tables (utf8_general_ci par exemple), il faut aussi préciser que les échanges doivent s’effectuer dans tel encoding en jouant la requête suivante en début de connexion : SET NAMES "utf8"
En effet, j’avais bien remarqué qu’il y avait un souci à ce niveau là, mais j’avais contourné ça à coup de utf8_encode() / utf8_decode() et de html_entities() / html_entity_decode(). Du coup, mon site est devenu un champ de é ou de �, le temps que je reprenne tout y compris une reprise des données stockées en base. C’était laborieux mais je pense que ça valait le coup, maintenant je sais, je crois, que c’est propre!
Voilà 2 sites qui résument tout ce qu’il faut faire pour gérer entièrement un site en UTF-8.
http://j-willette.developpez.com/tutoriels/web/encoder-son-site-en-utf8/
Catégories : Technique











Commentaires récents