Problèmes d'encodage UTF-8

Eléphanteau du PHP | 11 Messages

30 mars 2009, 15:02

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 ;)

Mammouth du PHP | 2937 Messages

30 mars 2009, 15:06

Le fichier PHP dans lequel tu récupères le contenu de tes fichiers XML est-il codé en UTF-8 ? ;)

Eléphanteau du PHP | 11 Messages

30 mars 2009, 15:10

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
Modifié en dernier par choum20 le 30 mars 2009, 15:11, modifié 1 fois.

Mammouth du PHP | 2937 Messages

30 mars 2009, 15:11

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.
Modifié en dernier par Victor BRITO le 30 mars 2009, 15:13, modifié 1 fois.

Eléphanteau du PHP | 11 Messages

30 mars 2009, 15:13

Merci de ta réponse

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

Mammouth du PHP | 2937 Messages

30 mars 2009, 15:15

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é ;) ).

Eléphanteau du PHP | 11 Messages

30 mars 2009, 15:25

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 !