【问题标题】:Write russian symbols in ini file with NSIS installer使用 NSIS 安装程序在 ini 文件中写入俄语符号
【发布时间】:2021-09-25 20:09:33
【问题描述】:

我有几个 UTF8-BOM ini 文件并使用 Unicode nsis 安装程序。

使用 WriteINIStr 可以很好地处理拉丁符号,但不显示俄语符号。

例如此代码不起作用:

WriteINIStr $File "TestSection" "Test" "Тест"

我对将文件编码为 UTF16 和向后编码有一些想法,但我认为这不是正确的路径。

【问题讨论】:

    标签: nsis


    【解决方案1】:

    如果 .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 文件编码。

    【讨论】:

    • 感谢您的回答。是的,应用正在使用不支持 UTF-16 的解析器,因此 ini 文件应该只使用 UTF-8 编码。
    猜你喜欢
    • 2017-07-15
    • 2013-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-13
    • 2015-11-11
    • 1970-01-01
    相关资源
    最近更新 更多