本文整理自网络,侵删。
本文章介绍了Delphi XE5实现通过TMemoryStream将一个UnicodeString写入到一个Unicode文本文件,之前研究了通过TMemoryStream将UnicodeString写入到文本文件,但是打开后,是乱码,是因为文本文件的字符表示为Ansi,所以写进去打开有问题,当然也可以通过TStrings的SaveToFile来保存成Unicode,但是TMemoStream的SaveToFile没有这样的功能,所以需要提前将Unicode标志写入到文本文件中,下面是代码:
procedure SaveUnicodeA(f:string;s:string);
var
Buffer, Preamble: TBytes;
ms:TMemoryStream;
ws:WideString;
hs:array[0..1]of char;
begin
if s='' then exit;
try
ms:=TMemoryStream.Create;
//Buffer := TEncoding.Unicode.GetBytes(s);
Preamble := TEncoding.Unicode.GetPreamble;
if Length(Preamble) > 0 then
ms.WriteBuffer(Preamble, Length(Preamble));
ms.WriteBuffer(PChar(s)^,length(s)*2);
ms.SaveToFile(f);
finally
ms.Free;
end;
end;
相关阅读 >>
Delphi firedac 下的 sqlite [11] - 关于批量提交 sql 命令的测试
Delphi 自带rest调试工具 restdebugger 用法
Delphi hbp-1100u 欧姆龙血压计的usb调用方法
更多相关阅读请进入《Delphi》频道 >>