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 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
Contenu := TFile.ReadAllText(FichierContent, TEncoding.UTF8);
les 3 premiers caractères de mon fichier disparaissent. Du coup, mon xml est daubé et tout le traitement suivant échoue.

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é :

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;
ça m'a couté une demi-journée