我有一个简单的UTF-8脚本
Unicode true
VIProductVersion "0.0.0.1"
VIAddVersionKey "ProductName" "Test"
VIAddVersionKey "FileVersion" "0.0.0.1"
VIAddVersionKey "FileDescription" "Test installer"
VIAddVersionKey "LegalCopyright" "Me © 2022"
Section
SectionEnd
问题是关于字符。在用NSIS3.08编译后,版权信息以Me \xC2\xA9 2022
的形式在安装程序资源中结束
似乎源是按字节而不是按字符转换为UTF-16字节的。有什么方法可以确保正确的UTF-16编码的字符?我可能总是可以使用(c)代替,但我想知道是否还有其他方法(除了对整个脚本使用UTF-16 )。
发布于 2022-09-19 14:59:43
Unicode true
指定您想要生成一个Unicode安装程序,但是它不会更改.nsi文件本身的解释(但是,它将更改包含的文件的默认值)。
如果MakeNSIS输出包含一个类似于Processing script file: "C:\Users\Anders\test.nsi" (ACP)
的行,那么这意味着编译器在解析.nsi时使用.nsi程序的默认代码页(为了与NSIS v2兼容)。
有几种方法可以解决这个问题:
"Me ${U+A9} 2022"
.
MakeNSIS /INPUTCHARSET UTF8 MyFile.nsi
确保您的.nsi文件具有BOM,因此它被解析为UTF-8.
MakeNSIS /INPUTCHARSET UTF8 MyFile.nsi
。
https://stackoverflow.com/questions/73774938
复制相似问题