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 :
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>
Le é est remplacé par : xE9, le è par xE8 et le ô par xF4.

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 ?