继续我之前的问题:How to save UTF-16 (Little Endian) and String value inside a file inside Delphi 7?
当我使用this answer中的以下代码时:
uses
Classes;
const
BOM: WideChar = $FEFF;
var
W: WideString;
FS: TFileStream;
begin
W := 'ᗿABC';
FS := TFileStream.Create('text.txt', fmCreate);
try
FS.WriteBuffer(BOM, Sizeof(BOM));
FS.WriteBuffer(PWideChar(W)^, Length(W) * Sizeof(WideChar));
finally
FS.Free;
end;
end;
我有这些问题:
当我使用这个:
W := 'ᗿABC';
我的IDE显示W := '?ABC';
我可以解决这个问题吗?因为[?]不是我的目标
运行代码时,我得到图像中的错误:
Delphi 7 中的代码编辑器不能很好地支持 Unicode 字符,如果有的话。你真的应该停止使用 25 岁的编译器并升级。
无论如何,试试这个:
W := #$15FF'ABC';
或者,您可能不得不求助于更像这样的东西:
W := WideChar($15FF) + WideString('ABC');
尝试将整数值类型转换为
WideChar
:
const
BOM: WideChar = WideChar($FEFF);
否则,使用
Word
代替WideChar
:
const
BOM: Word = $FEFF;