Unicode 如何使用Inno设置保存带BOM的UTF-16文件
如何将字符串保存到使用BOM进行UTF-16(UCS-2)编码的文本文件中Unicode 如何使用Inno设置保存带BOM的UTF-16文件,unicode,inno-setup,pascalscript,Unicode,Inno Setup,Pascalscript,如何将字符串保存到使用BOM进行UTF-16(UCS-2)编码的文本文件中 savestringstoutf8文件另存为UTF-8 使用streams将其保存为ANSI var i:整数; 开始 对于i:=1到长度(收敛)开始 Stream.write(aString[i],1); Stream.write(#0,1); 结束; 自由流; 结束; 由于Unicode字符串(在–Inno Setup 6的唯一版本)实际使用UTF-16 LE编码,您只需按位将(Unicode)字符串复制到字节数组(
savestringstoutf8文件
另存为UTF-8
使用streams将其保存为ANSI
var
i:整数;
开始
对于i:=1到长度(收敛)开始
Stream.write(aString[i],1);
Stream.write(#0,1);
结束;
自由流;
结束;
由于Unicode字符串(在–Inno Setup 6的唯一版本)实际使用UTF-16 LE编码,您只需按位将(Unicode)字符串
复制到字节数组(AnsiString
)。并添加(FEFF
):
过程rtlmovemoryfromstringtoptr(Dest:PAnsiChar;Source:string;Len:Integer);
外部的RtlMoveMemory@kernel32.dllstdcall';
函数SaveStringToUFT16LEFile(文件名:string;S:string):布尔;
变量
答:回答;
开始
S:=#$FEFF+S;
设定长度(A,长度)*2;
RTLMovemoryFromStringTopTR(A,S,长度)*2);
结果:=SaveStringToFile(文件名,A,False);
结束;
这与: