1. 程式人生 > >QT QTextCodec::codecForName 設定中文GBK 返回為NULL的問題

QT QTextCodec::codecForName 設定中文GBK 返回為NULL的問題

在QT的安裝目錄中,有個plugins\codecs
目錄,裡面有幾個和 亞洲文字編碼相關的 dll 檔案。其中和中文編碼相關的檔案是:
qcncodecs4.dll(release版本),qcncodecsd4.dll(debug)版本。

在生成的qt程式所在目錄下面,建立一個 plugin 目錄,然後再在 plugin 目錄下面建立一個  codecs 目錄,
然後把 qcncodecs4.dll 或 qcncodecsd4.dll(如果需要除錯的話就用這個檔案) 拷貝到 codecs目錄下面。

然後在main 函式裡面 加上如下紅色部分的程式碼

QApplication a(argc, argv);


QString sPath = QString("./plugin/");
a.addLibraryPath(sPath);

這裡還有一個要注意的地方就是: 一定要把檔案放到 codecs 這個名字的目錄下面,codecs 不能改為其他名字。 然後指定 載入 動態庫目錄的時候, 一定只能是載入  codecs 目錄的上一級目錄,也就是plugin 目錄,

這樣 QT程式就會自動在 plugin 目錄下的 codecs 目錄下面載入qcncodecs4.dll 這個庫。