Bonjour,
Je rencontre un problème avec l'encodage d'un fichier XML.
Voici le code que j'utilise pour générer le fichier à partir des données d'une base MySQL :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 <?php if(!$dbconn = mysql_connect('localhost', 'root', '')) { echo "Echec de la connexion MySQL au serveur 'localhost'."; exit; } if (!mysql_select_db('configuration')) { echo "Echec de la connexion à la base 'configuration'"; exit; } $table_id = 'client'; $query = "SELECT * FROM $table_id"; $dbresult = mysql_query($query, $dbconn); // create a new XML document $doc = new DomDocument('1.0' , 'UTF-8'); // create root node $root = $doc->createElement('root'); $root = $doc->appendChild($root); while($row = mysql_fetch_assoc($dbresult)) { //--> Une ligne à la fois $occ = $doc->createElement($table_id); //--> Un noed a chaque ligne $occ = $root->appendChild($occ); foreach ($row as $fieldname => $fieldvalue) { //--> Ajout d'un noeud fils pour chaque champ $child = $doc->createElement($fieldname); //--> Nom du child et sa valeur a ajouter $child = $occ->appendChild($child); $value = $doc->createTextNode($fieldvalue); $value = $child->appendChild($value); } } $xml_string = $doc->saveXML(); file_put_contents ('test.xml', $xml_string); ?>
et voila le résultat :Le é est remplacé par : xE9, le è par xE8 et le ô par xF4.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <?xml version="1.0" encoding="UTF-8"?> <root><client><id>1</id><Nom>Marie-Hꭨne PROUST</Nom><Adresse>Pigemolle</Adresse><Ville>85490 BENET</Ville><Latitude>46.388161</Latitude><Longitude>-0.575875</Longitude><Informatique>PC Fixe</Informatique><Internet>ADSL</Internet><Service>Oui</Service></client><client><id>2</id><Nom>Samuel PATARIN</Nom><Adresse>11, Rue de l'Aum��ie</Adresse><Ville>85490 BENET</Ville><Latitude>46.369358</Latitude><Longitude>-0.585604</Longitude><Informatique>PC Portable</Informatique><Internet>ADSL</Internet><Service>Non</Service></client></root>
Pour que le fichier soit exploitable par un navigateur, il faut que je fasse la manipulation suivante avec Notepad++ :
- Sélectionner "Encodage en UTF-8"
puis
- Sélectionner "Encodage en ANSI"
puis
- Sélectionner "Convertir en UTF-8".
Le texte devient alors lisible et affichable par le navigateur.
Une idée pour se passer de cette procédure un peu fastidieuse et pas très propre ?
Partager