2011-03-09 58 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