é, è, ê dans CDATA

Eléphant du PHP | 50 Messages

11 nov. 2008, 01:10

Bonjour,

J'ai le code suivant :
<![CDATA['$texte']]>
Hé bien si $texte contient du PHP par exemple, pas de problème mais s'il contient un caractère accentué j'obtient une erreur :
Warning: DOMDocument::loadXML() [function.DOMDocument-loadXML]: Input is not proper UTF-8, indicate encoding ! Bytes: 0xE0 0x20 0x6C 0x61 in Entity
Merci d'avance,
JC. !!!

++
Devoir de mémoire : http://voyage-etude-auschwitz.net
Projet de classe réalisé suite à un voyage au camp d'Auschwitz.

Mammouth du PHP | 2937 Messages

11 nov. 2008, 16:19

Comment le fichier XML est-il généré ? Est-ce que la génération du XML génère-t-elle des erreurs (le validateur du W3C, soit dit en passant, permet aussi de vérifier qu'un document XML est bien formé) ? Le contenu du XML comporte-t-il des entités (comme &nbsp;) ?

Normalement, un fichier codé comme suit :

Code : Tout sélectionner

<?xml version="1.0" encoding="utf-8"?> <racine> <element><![CDATA[ Un peu de texte accentué comportant des entités&nbsp;: en effet, ces entités peuvent poser problème ]]></element> </racine>
devrait passer comme une lettre à la poste. :-k

Eléphant du PHP | 50 Messages

11 nov. 2008, 16:30

Alors j'ai résolu mon problème mais je comprends pas pourquoi !
En effet, mon XML étant en UTF-8, j'avais également mis ma page d'ajout (admin) et la page d'affichage de mon texte en UTF-8 et la j'avais ce fameux problème de caractère !

Et depuis que j'ai tout mis en ISO sauf le XML ça marche !!!!!!

Pourquoi ?
Devoir de mémoire : http://voyage-etude-auschwitz.net
Projet de classe réalisé suite à un voyage au camp d'Auschwitz.

Mammouth du PHP | 2937 Messages

11 nov. 2008, 19:25

As-tu vérifié que tes autres fichiers étaient édités en UTF-8 sans BOM ?

Eléphant du PHP | 50 Messages

11 nov. 2008, 20:03

ja vais peut-être te sembler pomer mais qu'est-ce que BOM ? !
Devoir de mémoire : http://voyage-etude-auschwitz.net
Projet de classe réalisé suite à un voyage au camp d'Auschwitz.

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

11 nov. 2008, 20:59

BOM = BYTE ORDER MARK. Pour plus d'infos, voir: http://fr.wikipedia.org/wiki/Byte_Order_Mark
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène