Bonjour,
Aucune question dans ce post, juste une info pouvant être utile aux ignorants comme moi !
Soit un fichier xml encodé en UTF-8 sans BOM !
Si je charge le fichier avec le code suivant :
les 3 premiers caractères de mon fichier disparaissent. Du coup, mon xml est daubé et tout le traitement suivant échoue.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Contenu := TFile.ReadAllText(FichierContent, TEncoding.UTF8);
Par contre, la lecture avec un stream rend le bon résultat. Alors, pour assurer le coup et vérifier la différence, j'ai codé :
ça m'a couté une demi-journée
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Contenu := TFile.ReadAllText(FichierContent, TEncoding.UTF8); if LeftStr(Contenu, 3) <> '<?x' then with TStringStream.Create('', TEncoding.UTF8) do begin LoadFromFile(FichierContent); Contenu := DataString; Free; end;
Partager