Die Ausgabe von Unicode-Textdateien unterscheidet sich zwischen XE2 und Delphi 2009?

Wenn ich den folgenden Code versuche, scheint die Ausgabe in XE2 anders zu sein als in D2009.

procedure TForm1.Button1Click(Sender: TObject);
var Outfile:textfile;
    myByte: Byte;

begin
  assignfile(Outfile,'test_chinese.txt');
  Rewrite(Outfile);

  for myByte in TEncoding.UTF8.GetPreamble do write(Outfile, AnsiChar(myByte));
  //This is the UTF-8 BOM

  Writeln(Outfile,utf8string('总结'));
  Writeln(Outfile,'°C');
  Closefile(Outfile);
end;

Kompilieren mit XE2 auf einem Windows 8-PC gibt es in WordPad

?? C

TXT-Hex-Code: EF BB BF 3F 3F 0D 0A B0 43 0D 0A

Kompilieren mit D2009 auf einem Windows XP-PC gibt es in Wordpad

° C

TXT-Hex-Code: EF BB BF E6 80 BB E7 BB 93 0D 0A B0 43 0D 0A

Meine Fragen sind, warum es unterschiedlich ist und wie kann ich chinesische Zeichen in einer Textdatei unter Verwendung der alten Textdatei-E / A speichern?

Vielen Dank!

Antworten auf die Frage(3)

Ihre Antwort auf die Frage