Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unicode 如何使用Inno设置保存带BOM的UTF-16文件_Unicode_Inno Setup_Pascalscript - Fatal编程技术网

Unicode 如何使用Inno设置保存带BOM的UTF-16文件

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)字符串复制到字节数组(

如何将字符串保存到使用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)
字符串
复制到字节数组(
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);
结束;

这与: