我的脚本已绑定到QMAKE_POST_LINK
文件中的.pro
。所以它使用iscc
在发布版本之后创建安装程序。某些应用变量(如name,publisher)存储在此.pro
文件中,并作为参数传递给iscc
,如iscc "/DName=Мое приложение"
。这个变量有cp1251编码。
所以问题是iscc
以错误的编码获取参数(如cp866,而不是cp1251),结果installer.exe
有错误的字符。怎么解决?是否有qmake
转换编码的功能?
答案 0 :(得分:1)
解决了它。
所以我们的想法是编写一个标题defines.iss
文件,该文件使用qmake
write_file
函数进行定义,并在主.iss
文件中编写{{1} } on beginnig of file。
更新:编码可能存在其他问题。 #include "defines.iss"
中的.pro
文件通常是qt5
编码的。最新版本的utf8
支持inno setup
- 已编码utf8
,但此.iss
必须以.iss
字符开头。
因此,我们必须在BOM
的开头标记BOM
字符。例如,在defines.iss
中打开.pro
文件为Notepad++
并写入:
cp1251
<{1}}编码BOM = "п»ї"
write_file(defines.iss, BOM)
write_file(defines.iss, DEFINES_CONTENT, append)
中的将是正确的。
抱歉我的英文。如果有人纠正了我的文字,那将会很棒。)