- soit un site SPIP 1.9.2d sur un serveur de production, tout est défini en UTF-8 et s'affiche très bien.
- je fais une sauvegarde par la maintenance du site.
- je la restaure sur un autre serveur qui a exactement les mêmes squelettes, et j'efface le cache.
- l'affichage du site public est bien demandé en UTF-8 par la balise de l'entête, mais les caractères lus dans la base sont visiblement de l'ISO-8859, donc mal affichés (losanges). Sous phpMyAdmin, la base est en UTF-8 et tout s'affiche correctement. Si je change la config de SPIP en ISO, l'affichage est bon.
- je recommence la restauration, à partir de la même sauvegarde, puis j'efface le cache. Cette fois c'est exactement l'inverse !!! SPIP est configuré en UTF-8 et affiche bien les caractères accentués, mais cette fois c'est phpMyAdmin qui les affiche comme s'ils étaient en ISO (deux caractères avec un @).
- j'en suis là, et je n'y comprends rien. Je voudrais juste voir les caractère en UTF-8, à la fois sous SPIP et sous phpMyAdmin...
D'habitude ce genre de problème arrive lorsque character_set_connection n'est pas bon, je pense.
Paolo
Merci pour les liens.
Je pense que le problème existe depuis que je suis passé de php4 à php5.
A cette occasion, je n'ai changé aucun paramètre MySql.
J'étais et je reste avec un charset par défaut en UTF-8.
Pourquoi devrai-je rajouter SET NAMES utf8 dans le connect SPIP ?
Comment expliquer que phpMyAdmin et SPIP ne lisent pas la même chose ?