7

QSettingsいくつかの設定をINIファイルに保存するために使用しています。ただし、私のプログラムは英語ではないため、一部の設定にはUnicode文字列が含まれています。QtはINIファイルをutf8またはutf16ではなく、他のエンコーディングで、文字列「Приветмир!」で書き込んでいるようです。(rus。「Helloworld!」)は次のようになります。

WindowTitle=\x41f\x440\x438\x432\x435\x442 \x43c\x438\x440!

設定ファイルを手作業で編集したいのですが、こんな風に扱えません。QtをUnicodeで保存するように強制する方法はありますか?

4

1 に答える 1

17

setIniCodecの機能を確認してくださいQSettings

INIファイル(Unixの.confファイルを含む)にアクセスするためのコーデックをコーデックに設定します。コーデックは、INIファイルから読み取られたデータをデコードするため、およびファイルに書き込まれたデータをエンコードするために使用されます。デフォルトでは、コーデックは使用されず、非ASCII文字は標準のINIエスケープシーケンスを使用してエンコードされます。

したがって、必要なコーデックで呼び出す必要があります。たとえば、

QSettings settings;
settings.setIniCodec("UTF-8");

QSettingsオブジェクトを作成した直後、データにアクセスする前に呼び出す必要があることに注意してください。

于 2011-11-08T09:06:21.960 に答える