1. 程式人生 > >windows下Qt程式碼移植到linux下的中文亂碼問題解決

windows下Qt程式碼移植到linux下的中文亂碼問題解決

     先就linux下Qt安裝配置做點補充。
      其實linux下Qt安裝配置是非常方便的,因為應用商店裡一般都會有Qt,可以直接在那裡安裝。我試過Fedora16下使用命令:
#yum install qt qt-devel qt-x11 qt-doc qt-demos qt-examples qt-asssistant qt-creator qt-config
ubuntu12下使用命令:
$ sudo apt-get install qt4-dev-tools qt4-doc qt4-qtconfig qt4-demos qt4-designer

安裝連線MySQL的驅動程式:
$ sudo apt-get install libqt4-sql-mysql
安裝qwt第三方庫:

$ sudo apt-get install libqwt5-qt4 libqwt5-qt4-dev

安裝SQLite及視覺化工具:
$ sudo apt-get installsqlite sqlite3 sqlitebrowser
Qt Creator我在應用商店搜尋了安裝的。
QSerialPort第三方庫:
這個好像沒有應用,所以到官網上下了最新版的,直接在.pro中加include(qextserialport.pri的路徑)然後就可以使用了。
      該配置都都配置好了,下面編譯windows下都Qt程式。又遇到了一些問題,下面一一介紹:
1  開啟.pro後中文的註釋,常量string等都變成了亂碼。
      這時程式碼編輯框都上方一般都會出現一個讓你選擇編碼都框,從裡面選擇GB2312即可。我的fedora16下發現沒有GB2312這種編碼,解決方法是將Qt安裝目錄下的codec資料夾複製到Qtcreator裡面,具體都位置記不起來了。fedora已經沒了。
2 之前都程式碼支援QTextCodec::setCodc。。GB2312。。等支援中文亂碼,現在在系統支援的是utf-8,關於檔名的中文又出現亂碼。解決方法:
    在windows下把程式碼另存為成UTF-8編碼格式的,或者在linux下載kate,把程式碼另存為UTF-8編碼的。然後把之前都setCodeC...GB2312 改為  setCodeC  UTF-8。
然後重新編譯即可。