2011-03-09 62 views
3

我正在用Windows編寫一個Qt程序,並提供國際支持。 的代碼看起來是這樣的:Qt編碼問題

QTextCodec *p = QTextCodec::codecForName("GBK"); 

當程序對GBK本地機器上運行,它工作得很好,但與非GBK環境,對總是有NULL值。我確定目標環境安裝了GBK代碼頁。

這是怎麼發生的?謝謝。

回答

2

GBK編解碼器的代碼位於qcncodecs4.dll中,位於編解碼器插件目錄中。您部署的程序必須找到此插件:請參閱我對問題的回答Qt dll deployment on windows

+0

謝謝您的回覆。我遵循Qt文檔中的說明: 1.向main.cpp添加一行:Q_IMPORT_PLUGIN(qcncodecs) 2.向pro添加一行:QTPLUGIN + = qcncodecs 但是我得到一個編譯錯誤::: error:can not find -lqcncodecs – jay 2011-03-09 08:50:41

+1

你是否靜態鏈接Qt?因爲如果你不是,那就沒有必要把它和你的二進制文件聯繫起來。只要確保它可用於已部署的程序,例如:將其複製到應用程序旁邊的插件文件夾中,並相應地設置qt.conf文件。 – andref 2011-03-09 15:09:10

+0

是的,我正在建立靜態的Qt,現在一切正常。謝謝大家。 – jay 2011-03-11 05:56:33