ソースコードのエンコーディングによって異なります。
ファイルがすでにUTF-8でエンコードされていると思われる傾向があります。文字はC3 BCとしてエンコードされています。
http://doc.qt.io/qt-4.8/qstring.html#QString-8に従って、デフォルトでは入力をLatin1の内容とみなすQString :: fromAscii()メソッドを使用して、文字列をユニコードに変換するQString::QString (const char * str)
コンストラクタを呼び出しています。
C3とBCは両方ともLatin 1で有効であるため、それぞれÃ ¼ UTF-8に変換すると、次の文字が表示されます。
&ailde; (C3)→C3 83
¼ (BC) - > C2 BCあなたが得る文字列につながる
: "4D C3 83 C2 BC 6cと6cの65 72"
が、それは二重のUTF-8エンコーディングだ、物事をまとめるために。
1)あなたは、あなたの好みのテキストエディタを使用してラテン-1にソースファイルを変換することができます。
は、この問題を解決するには、いくつかのオプションがあります。
2)文字列がファイルのエンコーディングに依存しないように、ü文字を\ xFCに適切にエスケープすることができます。
3)あなたはUTF-8データとしてファイルや文字列を保持し、使用することができます更新QString str = QString::fromUtf8 ("Müller");
:この問題はQT5にもはや関連しています。 http://doc.qt.io/qt-5/qstring.html#QString-8は、コンストラクタがの代わりにQString::fromUtf8()
を内部的に使用するようになりました。したがって、UTF-8エンコーディングが一貫して使用されている限り、デフォルトで使用されます。
http://stackoverflow.com/questions/29485602/qt-convert-unicode-entites – trante