在QT中,使用QString輸出到控件進行顯示時,經常會出現中文亂碼,網上查了一圈,發現大部分都是針對QT4增加4條語句:</span> [cpp] view plain copy QTextCodec *codec = QTextCodec::codecForName("UTF-8"); QTextCodec::setCodecForTr(codec); QTextCodec::setCodecForLocale(codec); QTextCodec::setCodecForCStrings(codec); 我使用的是QT5,已經不支持如此設置了,而且這樣設置也會存在很多問題。 其實,還有更簡單的方法,就是使用我寫的如下兩個函數: [cpp] view plain copy QString str2qstr(const string str) { return QString::fromLocal8Bit(str.data()); } string qstr2str(const QString qstr) { QByteArray cdata = qstr.toLocal8Bit(); return string(cdata); } 在需要使用中文QString時,先用string寫一個,然后轉過去就可以啦,例如: [cpp] view plain copy qlabel->setText(QString(str2qstr(string("支持中文"))));