-
Problème encodage UTF8
Bonjour,
Je ne suis pas sûr de poster dans le bon forum vu que mon problème implique et la BD, et le fichier HTML et php lui-même.
Mon problème est que je n'arrive pas à afficher les lettres accentuées correcement. Mon processus est le suivant :
- je récupère des données en UTF8 à partir d'un fichier XML distant
- je les insère dans une table utilisant l'UTF8 dans une BD MySQL
- je les affiche dans une page avec encodage UTF8.
Le problème est que sur les browsers, tous les caractères accentués sont encodés correctement, excepté le "à" qui s'affiche en tant que "?".
J'ai essayé de forcer l'enregistrement dans la BD en utilisant CONVERT USING UTF8, mais rien à faire.
J'ai testé avec MySQL 5.0, 4.1.9 et 3.2 et le problème est exactement le même.
Merci d'avance pour votre aide et vos suggestions!
EDIT: les champs que je met à jour sont du type TEXT et donc je ne peux pas préciser dans mySql leur encodage
-
Il doit y avoir un problème dans une de tes trois étapes, forcément.
Soit dans l'encodage de ton XML, soit dans l'affichage de ta page, je crois... Je te fais confiance pour l'encodage de ta BDD :P
Essaie d'enregistrer ton XML dans le bloc-notes en UTF-8 (à la place d'ANSI, par défaut).
As-tu spécifié un header CONTENT-TYPE sur l'affichage ?
Quel encodage a ton navigateur par défaut (ça peut aussi se trouver là...) ?
-
Salut,
En fait je ne peux pas modifier le XML car c'est un fichier distant qui ne m'appartient pas et auquel mon client est abonné et y a accès.
Ceci dit, j'ai résolu le problème par pur hasard après une dizaine d'acrobaties, et d'ailleurs je viens de réaliser que j'ai ommis de préciser un détail dans mon post précédent, c'est que mon XML je le récupère à l'aide d'un script PERL qui lui insère dans la BD.
En fait je ne saurais expliquer ce qui se passe, mais la solution que j'ai trouvée est la suivante :
- changer l'encodage de la page html/php de UTF8 vers ISO-8859-1
- Laisser la BD & ses tables en UTF8
- utilser utf8_decode dans mon script php pour l'affichage des textes en question
Et ça marche!
Je suis quasiment certain que c'est au niveau de Perl que le problème se situe, mais je n'ai pas d'idée précise.
Le plus important c'est que ça fonctionne :)
Voilà la solution est là, si ça peut aider quelqu'un dans le futur .... :yaisse2: