Bonjour à tous,
J’ai un problème absolument terrible qui dépasse de loin mes maigres
compétences et qui semble destiné aux cadors de Spip et de Mysql ….
J’héberge sur un même serveur deux sites Spip.
• Le site A tourne sous SPIP 1.9.2d [11132]
• Le site B tourne sous SPIP 1.9.2a [8782]
Ces deux sites SPIP sont des sites avec un encodage par défaut UTF-8 et ils
intègrent tout deux des pages et des liens RSS en arménien (bon, je sais, je
cherche les ennuis !).
Pour le site B, tout se passe bien, les textes en arménien sont transcrits sans
problème. Exemple d’un titre de lien RSS :
Սոցիալական տուն` աջակից պայմաններով» ծրագիրը Հայաստանում առաջինն իրականացվում է
Գորիսում
Pour le site A en revanche, c’est la cata : le même lien RSS donne :
�?ո�?իալական տուն` աջակի�? պայմաններով» ծրագիրը Հայաստանում առաջինն
իրականա�?վում է Գորիսում
Eh oui, vous aurez remarqué les fameux �? qui, même en arménien, se voit comme
le nez au milieu de la figure et qui sont bien connus pour être
caractéristiques d’un problème de mauvais encodage (souvent un site passé en
UTF-8 dans spip alors que la base n’est pas UTF-8).
Làs ! un rapide coup d’œil via phpmyadmin sur les deux bases de données donne
Interclassement pour la connexion MySQL: utf_unicode_ci
character set client utf8
character set connection utf8
character set database utf8
character set results utf8
character set server utf8
character set system utf8
character sets dir C:\Program Files\MySQL\MySQL Server 4.1\share\charsets/
collation connection utf8_unicode_ci
(Valeur globale) utf8_general_ci
collation database utf8_general_ci
collation server utf8_general_ci
Quand à l’interclassement des champs texte incriminés des tables, il est fixé à
utf8_general_ci également pour les deux bases de données. Réflexion faite,
c’est bien logique, tous ça a été installé sur le même serveur et je ne me suis
pas amusé à traficoter les valeurs par défaut (les valeurs globales sont
d’ailleurs les même que les valeurs pour la session phpmyadmin ).
Autrement dit, c’est mystère et crottes de caniche ! Et d’ailleurs, le problème
était trivialement celui d’un double encodage, j’aurais tous les caractères
arméniens en vrac… d’ailleurs je me suis amusé à reproduire ce diag, ça
donnerait ça :
ÕŽÕ¡Ö€Õ¸Ö€Õ¤.«ԻÕÕ¹Ö„Õ¡Õ Õ¯Õ¸Ö€Õ¡Õ®-Õ´ÕÕ¸Ö€Õ¡Õ...
Mais là le problème se focalise sur certaines lettres issues des titres des
flux RSS importés (le le ս , le ց notamment ). Bref, j’ai perd mon latin (et
même mon arménien) :
- la source est la même (en l’occurrence pour cet article
http://hetq.am/am/marzes/tsragir-2/ )
- le lien est le même (http://hetq.am/am/feed/ pour ce site )
- les configurations mysql sont les mêmes
- les versions de spip sont presque les mêmes…mais je n’ose croire que ce
soit l’origine du problème dans la mesure où c’est la version spip la plus
ancienne qui me donne un résultat correct !
Celui qui me donne la solution gagne un cours d’arménien gratuit ! (non je
plaisante….de toute façon j’en suis incapable )