2016-10-10 10 views
0

.proファイルにQMAKE_POST_LINKにバインドされたスクリプトがあります。したがって、リリースビルド後にインストーラを作成するにはisccを使用します。名前、パブリッシャーなどの一部のアプリ変数は、この.proファイルに保存され、isccの引数としてiscc "/DName=Мое приложение"のように渡されます。この変数にはcp1251エンコーディングがあります。qmakeポストシェルエンコーディング(cp866に変換しない)

したがって、isccは、間違ったエンコード(cp866ではなくcp1251)で引数が取得され、結果としてinstaller.exeに間違った文字が含まれるという問題があります。それを修正するには?エンコードを変換するための関数はありますか?qmake

答えて

1

解決しました。

だからアイデアは、それがqmakewrite_file関数を用いて定義し、メイン.issファイル内のファイルのbeginnigに#include "defines.iss"を書き込むとヘッダdefines.issファイルを記述することです。

更新:エンコードに別の問題がある可能性があります。 ファイルはqt5であり、通常utf8がコード化されています。 inno setupの最新バージョンをサポートutf8 - エンコード.issですが、この.issBOM文字で始まる必要があります。

BOM文字は、defines.issのbeginnigに記載する必要があります。そのために例えばcp1251としてNotepad++.proファイルを開き、書き込み:

BOM = "п»ї" 
write_file(defines.iss, BOM) 
write_file(defines.iss, DEFINES_CONTENT, append) 

BOMエンコーディングutf8では正しくなります。

私の英語のために申し訳ありません。誰かが私のテキストを訂正すれば素晴らしいだろう:)

関連する問題