...
var f: TextFile;
begin
AssignFile(f, 'test.txt');
Rewrite(f);
write(f, #$EF+#$BB+#$BF); // UTF-8 BOM。关键就是写入这个UTF-8的BOM, BOM 是 Bype Order Mark 的缩写。
writeln(f, UTF8Encode('中文'));
CloseFile(f);
...
在delphi中TextFile对象创建文件时默认是 ANSI 编码。 这样中文或者其他非英文字符显示的时候就会变成乱码。
以上是生成一个UTF8编码的文本文件的代码。
Byte Order
Mark