【发布时间】:2021-09-25 20:09:33
【问题描述】:
我有几个 UTF8-BOM ini 文件并使用 Unicode nsis 安装程序。
使用 WriteINIStr 可以很好地处理拉丁符号,但不显示俄语符号。
例如此代码不起作用:
WriteINIStr $File "TestSection" "Test" "Тест"
我对将文件编码为 UTF16 和向后编码有一些想法,但我认为这不是正确的路径。
【问题讨论】:
标签: nsis
我有几个 UTF8-BOM ini 文件并使用 Unicode nsis 安装程序。
使用 WriteINIStr 可以很好地处理拉丁符号,但不显示俄语符号。
例如此代码不起作用:
WriteINIStr $File "TestSection" "Test" "Тест"
我对将文件编码为 UTF16 和向后编码有一些想法,但我认为这不是正确的路径。
【问题讨论】:
标签: nsis
如果 .ini 具有 UTF-16LE BOM,Windows ini 函数将使用 UTF-16 编码写入文件。
FileOpen $0 $INSTDIR\file.ini a
FileWriteUTF16LE /BOM $0 ""
FileClose $0
WriteIniStr $INSTDIR\file.ini foo bar "${U+2115}SIS"
只要访问该文件的其他程序也使用标准的 Windows ini 函数,它就可以工作。如果其他程序使用需要 UTF-8 的自定义解析器函数,那么这将不起作用,您必须 convert 文件编码。
【讨论】: