Page 1 sur 1

Problèmes d'encodage UTF-8

Posté : 30 mars 2009, 15:02
par choum20
Bonjour,
je lis des fichiers XML encodés en UTF-8 à l'aide de la fonction file_get_contents puis je fais un traitement SimpleXML sur le fichier. Mais lorsque j'affiche simplement le contenu du fichier dans une page, tous les caractères spéciaux déconnent.

Par exemple je me retrouve avec "muséologique" au lieu de "muséologique"

Le fichier que je lis est bien en UTF-8 et file_get_contents doit par défaut utiliser cet encodage, je ne comprends pas d'où vient l'erreur.


Merci à qui saura m'aider.

choum20 ;)

Posté : 30 mars 2009, 15:06
par Victor BRITO
Le fichier PHP dans lequel tu récupères le contenu de tes fichiers XML est-il codé en UTF-8 ? ;)

Posté : 30 mars 2009, 15:10
par choum20
Mon code est un peu complexe du fait que j'utilise l'architecture MVC de Zend mais quand j'affiche le code source de ma page, je peut lire au dessus:

Code : Tout sélectionner

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

edit: sur la doc de file_get_contents ils me parlent de PHP 6, je suis peut-être à la masse mais on est à la 6? http://fr.php.net/manual/fr/function.fi ... ntents.php

Posté : 30 mars 2009, 15:11
par Victor BRITO
Cette balise meta ne suffit pas : il faut que tous les fichiers soient édités en UTF-8. Avec Notepad++, par exemple, il suffit d'effectuer la sélection suivante : Format > Convertir en UTF-8 sans BOM.

Posté : 30 mars 2009, 15:13
par choum20
Merci de ta réponse

Comment puis-je vérifier le type d'encodage de toutes mes pages dans ce cas?

Posté : 30 mars 2009, 15:15
par Victor BRITO
Comment puis-je vérifier le type d'encodage de toutes mes pages dans ce cas?
Ça dépend de l'éditeur que tu utilises. Mais, bon nombre affiche le codage employé par le fichier et permet d'en changer (d'ailleurs, j'en donne un exemple dans mon précédent message, que j'ai édité ;) ).

Posté : 30 mars 2009, 15:25
par choum20
J'utilise Zend Studio for Eclipse et lorsque je regarde la propriété des fichiers, ils sont tous par défaut en UTF-8...
:?

edit:

J'ai un peu mieux cerné le problème, lorsque je lis mon fichier xml, la lecture se déroule correctement mais une fois que je lis le résultat du traitement de simpleXML, le problème apparait.

edit2:

Mon problème est résolu, une fois encore le problème était idiot, au milieu de mon code j'éffectuais un appel de la fonction "htmlentities()" qui ne servais bien sur à rien mais qui changeait l'encodage du résultat.
Merci pour tes réponses en tout cas !