1. 程式人生 > >qt中qDebug()能正常顯示中文,控制元件卻無法顯示中文的情況

qt中qDebug()能正常顯示中文,控制元件卻無法顯示中文的情況

我從資料庫中取出資料,每當取出資料為中文時,則無法正常顯示,(通過QString::fromLocal8Bit())來將char*轉換,但是發現qDebug中能列印,把網上設定中文亂碼的都嘗試了一遍,發現並沒有啥用.但是根據qt4和qt5的變化中發現,儘管qt4中解決中文亂碼的問題無法在qt5中使用,但是qt5依舊保留了一個介面QTextCodec::setCodecForLocale();於是我就感覺問題應該出在這個上面,只需要設定下這個編碼即可解決,一般支援中文的有utf-8,GBK兩種,

設定格式為:QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK"));

還可以通過獲取本地編碼來看看你的設定是否有效,如果沒有成功,一般就會變成系統預設的編碼

QTextCodec *code = QTextCodec::codecForLocale();
    qDebug()<<"local:"<<code->name();