QString の toLocal8bit と toLatin1

Qt5 では、setCodecForCStrings と setCodecForTr が削除され、QString() のコンストラクターはデフォルトで UTF8 から呼び出され、Qt Creator のファイル エンコード形式はデフォルトで UTF-8 になりました。

エンコード形式

QString の toLocal8bit と toLatin1 はどちらも QString を QByteArray に変換できますが、この 2 つの違いはエンコーディングにあります。

toLocal8Bit: ローカル 8 ビット エンコード形式に変換します。文字列にローカル 8 ビット エンコーディングでサポートされていない文字が含まれている場合、返されるバイト配列は未定義になります。前述したように、Qt は Unicode を使用して文字列を保存、描画、操作し、実行します。toLocal8Bit の実行は、Unicode でエンコードされた qstring をローカル エンコード形式に変換することと同じです。Windows システムの場合、ローカル エンコード形式は GBK で、Linux システムの場合、UTF-8 です。

toLatin1: 文字列の Latin-1 表現を QByteArray として返します。つまり、ASCII エンコーディングに変換されます。文字列に非 Latin1 文字が含まれている場合、返されるバイト配列は未定義です。これらの文字は抑制したり、疑問符に置き換えたりすることができます。
 

おすすめ

転載: blog.csdn.net/m0_52467164/article/details/131068851