par
Sethpolma » 16 févr. 2009, 22:03
Les fameux problèmes d'encodage ! Je te souhaite bien du courage si tu reprends un ancien site. Car, j'ai vu de tout et n'importe quoi dans les différentes bases de données.
Un peu de théorie : l'encodage est la manière de représenter un caractère en informatique. L'ISO, l'un des encodages les plus répandus (mais pas celui que je conseille) est codé, imaginons, sur 4 bits (valeur que je donne arbitrairement : peut-être est-elle juste, peut-être pas). Problème, ta base stocke tous les caractères en UTF-8, ce qui signifie que chaque caractère est codé sur 8 bits. Cela peut être intéressant pour permettre d'afficher tous les caractères du monde (aussi bien l'alphabet chinois que l'alphabet cyrillique). Cependant, cela pose de gros soucis pour nous, français, qui utilisons des accents.
Ta base de données stocke de l'UTF-8 (attends donc des caractères codés sur 8 bits), et tu lui envoies de l'ISO probablement (codé sur 4 bits). Tu as donc des soucis d'affichage.
Pour résoudre tout cela, essaye d'exécuter la requête :
Avant tout envoi d'une autre requête. Cela indiquera à MySQL de traiter les données que tu lui envoies comme de l'UTF-8. Essaye comme cela, et tiens nous au courant du résultat.

Les fameux problèmes d'encodage ! Je te souhaite bien du courage si tu reprends un ancien site. Car, j'ai vu de tout et n'importe quoi dans les différentes bases de données. :)
Un peu de théorie : l'encodage est la manière de représenter un caractère en informatique. L'ISO, l'un des encodages les plus répandus (mais pas celui que je conseille) est codé, imaginons, sur 4 bits (valeur que je donne arbitrairement : peut-être est-elle juste, peut-être pas). Problème, ta base stocke tous les caractères en UTF-8, ce qui signifie que chaque caractère est codé sur 8 bits. Cela peut être intéressant pour permettre d'afficher tous les caractères du monde (aussi bien l'alphabet chinois que l'alphabet cyrillique). Cependant, cela pose de gros soucis pour nous, français, qui utilisons des accents.
Ta base de données stocke de l'UTF-8 (attends donc des caractères codés sur 8 bits), et tu lui envoies de l'ISO probablement (codé sur 4 bits). Tu as donc des soucis d'affichage.
Pour résoudre tout cela, essaye d'exécuter la requête :
[code]SET NAMES UTF8[/code]
Avant tout envoi d'une autre requête. Cela indiquera à MySQL de traiter les données que tu lui envoies comme de l'UTF-8. Essaye comme cela, et tiens nous au courant du résultat. :)