Bonjour,
j'ai essayé de chercher sur la liste avec divers mots-clés et n'ai rien
trouvé, donc je vous soumets mon problème et m'excuse s'il a déjà été traité.
Ma situation actuelle est la suivante :
- SPIP est en UTF-8;
- les tables de mysql sont en latin1;
- la connection entre les deux s'établit en latin1 (SET CHARACTER SET latin1).
En conséquence et comme on peut s'y attendre, tout s'affiche correctement
du côté de SPIP (exemple : Journée mondiale pour le travail décent) mais pas
du côté de MySQL (même exemple : Journée mondiale pour le travail
décent).
Pour divers raisons, j'aimerais que l'affichage soit correct aussi du côté de
mysql. La convertion des tables en utf-8 est désagréable mais ne pose pas
techniquement de véritables problèmes. Par contre, changer l'encodage de la
connexion à la base me pose problème, d'autant plus que MySQL ne fait par lui-
même aucune conversion, et se retrouve alors à envoyer de l'utf-8 en tant que
latin1 (!), à la suite de quoi SPIP tente de convertir en utf-8 ce qui est en
fait déjà de l'utf-8, avec la catastrophe à l'affichage qu'on peut imaginer.
En fait, je ne peux changer le GLOBAL CHARACTER SET car la base est accueillie
par un hébergement partagé. Si on ne précise rien, la connexion s'établit donc
automatiquement en latin1. C'est donc à SPIP de réclamer explicitement de
l'utf-8 quand il établit la connexion, mais je n'ai pas trouvé où et comment
faire, et c'est ici que je fais appel à votre aide et à votre expertise.
Cordialement, Jean-Sébastien Lebacq.