Bonjour,
Je cherche à encoder un document XML en UTF-8.
J'ai passé la propriété Encoding de mon TXMLDocument à 'UTF-8'
Cependant lorsque je l'ouvre avec Notepad++, l'encodage est en ANSI.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 XMLDoc := TXMLDocument.Create(nil); with XMLDoc do begin Active := False; FileName := ''; Active := True; Version := '1.0'; Encoding := 'UTF-8'; Bla bla SaveToFile('C:/Test.xml'); end;
Le but de la manoeuvre est de passer une chaine XML a un WebService.
Au départ j'avais essayé de le passer via un stream grace au code suivant.
Et ensuite je passais la chaine contenu dans Stream.DataString au WebService. Mais ça ne fonctionnais pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Stream := TStringStream.Create(''); XMLDoc.SaveToStream(Stream);
La solution qui semble fonctionner même si elle ne me plait pas est d'enregistrer le fichier XML puis d'envoyer son contenu au webservice. ça passe très bien si le fichier est encodé en UTF-8. Ce qui m'oblige à ouvrir le fichier XML avec Notepad++, de passer l'encode à UTF-8 et d'enregistrer avant de pouvoir envoyer son contenu au webservice.
Donc je cherche à obtenir le bon encode sans passer par cette étape manuelle.
J'ai lu qu'il suffisait de définir la propriété Encoding correctement pour que ça marche mais apparement ce n'est pas le cas. Je me retrouve avec un fichier XML avec cet en-tête : <?xml version="1.0" encoding="UTF-8"?> mais il est encodé en ANSI.
Quelqu'un a t'il une solution ?
Partager