qmake post shell编码(不转换为cp866)

时间:2016-10-10 08:49:27

标签: character-encoding inno-setup qmake

我的脚本已绑定到QMAKE_POST_LINK文件中的.pro。所以它使用iscc在发布版本之后创建安装程序。某些应用变量(如name,publisher)存储在此.pro文件中,并作为参数传递给iscc,如iscc "/DName=Мое приложение"。这个变量有cp1251编码。

所以问题是iscc以错误的编码获取参数(如cp866,而不是cp1251),结果installer.exe有错误的字符。怎么解决?是否有qmake转换编码的功能?

1 个答案:

答案 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) 中的

将是正确的。

抱歉我的英文。如果有人纠正了我的文字,那将会很棒。)