pb de charset entre un site et sa sauvegarde

Bonjour,

Je rencontre un problème étrange :

- 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...

Quelqu'un a une idée ?

Martinus wrote:

- 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...

Voir :
http://article.gmane.org/gmane.comp.web.spip.user/138275/
et peut-être aussi
http://dev.mysql.com/doc/refman/5.0/fr/charset-connection.html

D'habitude ce genre de problème arrive lorsque character_set_connection n'est pas bon, je pense.

Paolo

Paolo a écrit :

Martinus wrote:

- 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...

Voir :
http://article.gmane.org/gmane.comp.web.spip.user/138275/
et peut-être aussi
http://dev.mysql.com/doc/refman/5.0/fr/charset-connection.html

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 ?

Le mystère subsiste...