Moin,
ich habe da eine Sache die ich nicht verstehe, in
dem Beitrag hier ist sehr schön beschrieben wie man einen normalen Text in UTF-8 umwandelt.
Wenn ich das jetzt wie folgt umsetze passiert folgendes:
1) Bei ShowMessage wird der Text korrekt umgewandelt angezeigt
2) In der Textdatei steht wieder ein
Ansi-String und die Umlaute sind nicht umkodiert worden
Bei mir funktioniert dein Code einwandfrei. Die Datei ist UTF-8. Mit was für einem Tool schaust du dir den Fileinhalt an? Ich vermute dein Tool checkt das selber und konvertiert dann UTF-8 in
Ansi zur Anzeige. Ich nutze Ultra Edit und der Zeigt mir die erzeugte Datei als UTF-8 Datei an und wandelt auch alle Zeichen entsprechend um. Notepad macht das übrigens auch automatisch. Wenn du die Date damit anschaust, wirst du die UTF-8 Zeichen nicht so sehen wie in deiner MessageBox, sondern bereits umgewandelt in das entsprechende Zeichen.
Allerdings ist es mir eine Rätsel wieso man da dieses SetCodePage benötigt. In D7 ist das nicht nötig und da reicht ein simples UTF8Encode und der String ist dann UTF8-codiert.