qtforlinux中文亂碼
Ⅰ sqlite中以GBK存的中文,在linux環境的QT開發中QSqlQuery查詢出來是亂碼,需要如何轉換,具體如何操作,謝
最簡單的辦法就是你的程序腳本也是GBK編碼
Ⅱ Qt顯示中文亂碼
先用文本文件的打開另存為的時候設置一下編碼就好了 一般Windows下是gbk
Ⅲ 知道qt中文顯示亂碼問題
1. 你要明白QObject::tr是幹嘛的。它是用於程序國際化使用的,也就可以界面文字翻譯成不同的語言。你如果使用QObject::tr,你應該全部用英文表示,然後後面藉助Linguist翻譯成中文,就不會亂碼了。詳細請搜索「qt國際化"。
2. 你如果並不是想實現界面語言由英文翻譯成各種語言這種國際化,那你完全沒有必須使用QObject::tr。你如果只是單獨想顯示"ddd的d",你就使用btn.setText(QStringLiteral("ddd的d"));,肯定不會亂碼。
Ⅳ Qt中文亂碼問題怎麼解決
(1)、中文編碼一律使用QString::fromLocal8Bit()介面。
原因:需要支持QT4版本。QStringLiteral()方法也可取,但是它只支持QT5版本,如果沒有版本問題,可以使用。
(2)、CPP等文件編碼一律使用UTF8—BOM格式。
原因1:UTF8-無BOM在使用window編譯器cl中編譯會失敗,當然除非你Windows中使用QT的Mingw版本編譯開發。
原因2:不使用GBK的文件編碼是為了更容易的兼容到linux版本與windows中,否則你需要改QtCreate的編碼環境與linux的系統字元環境。
Ⅳ Qt 開發,中文顯示亂碼。請看代碼之後再下結論
QT默認用的和你編碼不一樣,用utf8要改qt的環境設置,或者試試下面的。
QTextCodec::setCodecForTr(QTextCodec::codecForName("gbk"));//設置中文字體編碼
Ⅵ QT發布程序後中文顯示亂碼的問題
QApplication::addLibraryPath("./plugins");
QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GBK"));
QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));
在main函數里的QApplication a(argc, argv)這行的下面加入以上代碼。注意加上頭文件
Ⅶ Qt中文亂碼
把源代碼的文本格式換一個,用記事本,如果是ansi換成utf8,如果是utf8就換成ansi,再試試看
Ⅷ Qt程序發布後,放在沒有Qt的系統(Linux Redhat6.5)下運行,中文不顯示,已經加了中文字型檔
有設置字體嗎?
一般情況下在Qt安裝目錄的lib目錄下面有字體文件,如果沒有你可以從windows下面拷貝一個「微軟雅黑」過去,然後在main.cpp中配置下app的字體,應該就可以顯示了
#或者在配置啟動腳本的時候設置字體路徑
exportQTDIR=/usr/local/qt5
exportQT_QPA_FONTDIR=$QTDIR/lib/fonts
exportQT_QPA_PLATFORM_PLUGIN_PATH=$QTDIR/plugins/
exportLD_LIBRARY_PATH=$QTDIR/lib:/lib:/usr/lib:/opt/libxil/lib:$LD_LIBRARY_PATH
Ⅸ QT的fromLocal8Bit函數中文顯示亂碼問題
linux一般默認就是Utf-8的語言,windows一般默認是gb2312的語言,fromLocal8Bit是獲取本地語言類型轉換,QString QString::fromLocal8Bit ( const char * str, int size = -1 ) ,你確定一下你的str是什麼編碼吧。
簡單來說:如果你的.cpp文件保存的是utf-8的格式,fromLocal8Bit ("測試中文"),「測試中文」就是utf-8的字元,linux肯定就正常,windows肯定就不正常了