QT中国の表示の問題

(この記事では、参照https://www.cnblogs.com/xgponder/p/4744168.html)。

ドゥQTの開発が簡単に、その後の質問はそれが起こったのかであり、それを解決する方法を、文字化け中国の問題に遭遇するだろうか?

この現象は最初の説明:前の2つのプログラムの手、次のようにコードの一部があります。

QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));    
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));    
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
QMessageBox::about(NULL,QObject::tr("提示"),QObject::tr("密码错误,请重新输入!"));

次のように別のコードは次のとおりです。

QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));    
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));    
QTextCodec::setCodecForTr(QTextCodec::codecForName("gb18030"));
QMessageBox::about(NULL,QObject::tr("提示"),QObject::tr("密码错误,请重新输入!"));

現実には、プロンプトボックスを実装するためのGB18030に変更された最初のプログラムコード、UTF8に第2の変更、二つのプログラムが文字化けしている場合は後に、プロンプトボックス中国を実装するためにこれら二つの手順は、正常であるということです、これは非常に興味深いです。

検査後、第1の符号化手順はUTF8で、手順をコーディング目はGB18030あります。あなたはこのコードとエンコーディングが一貫しています。これは、QT QStringの中で言及されるべきで、それは中国の中国のUnicodeエンコーディングに変換し表示するにはまず、Unicodeでエンコードする必要があります。質問が思い付いた今回は、どのようなソースのコーディングフォーマットがあることは、それはあなたのソースのコーディングフォーマット変換があああなたを与えることができます知っている、です。だから、QTextCodec :: setCodecForTr(QTextCodec :: codecForName(「UTF-8」))この文は、周囲のテキストTRエンコードQTにあなたを語っている、ここにコードするエンコードするソースコードと一致する必要があります。

また言って、上記の機能はQT4でのみ使用することができ、現在QT5は、インターフェースをキャンセルしました。

公開された12元の記事 ウォンの賞賛4 ビュー20000 +

おすすめ

転載: blog.csdn.net/wuzhidefeng/article/details/81979943