Pour sauvegarder des fichiers de type xml, j'ai une méthode qui utilise un Writer MSXML4.0 et j'ai des pbs avec le processing instruction :

Lorsque je code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
      MSXML2::IMXWriterPtr writer(__uuidof(MXXMLWriter40));
      ...
      writer->put_encoding (L"UTF-8");
le processing instruction de mon fichier xml est le suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
<?xml version="1.0" standalone="no"?>
Si je fais :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
      writer->put_encoding (L"UTF-16");
J'ai le résultat :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
<?xml version="1.0" encoding="UTF-16" standalone="no"?>
Et enfin, si j'ai :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
      writer->put_encoding (L"UTF-32");
J'ai le résultat :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
<?xml version="1.0" encoding="UTF-16" standalone="no"?>
J'ai même essayé d'encoder en codepage 8859-1, même résultat, j'ai en résultat un encoding UTF-16 dans mon fichier xml de retour.
Assez original comme résultat, j'ai soit de l'UTF-16, soit rien du tout.
J'ai fait le tour de msdn, je n'ai rien trouvé ; si quelqu'un a une idée d'où peut venir le pb, je l'en remercie beaucoup.