vs2008+Qt4.6.4中文显示乱码问题

来源:互联网 发布:淘宝如何开店铺步骤 编辑:程序博客网 时间:2024/06/06 16:33

最近在用vs2008继承Qt4.6.4库开发时发现,用Qt Creator开发只需要将plugins文件夹放到程序同级目录,编写如下代码

QString strLibPath(QDir::toNativeSeparators(QApplication::applicationDirPath())+QDir::separator()+"plugins");
//增加可用动态库路径
QApplication::addLibraryPath(strLibPath);

QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GB18030"));//或者QTextCodec::setCodecForCStrings(QTextCodec::codecForName("utf-8"));
QTextCodec::setCodecForLocale(QTextCodec::codecForName("GB18030"));//或者QTextCodec::setCodecForCStrings(QTextCodec::codecForName("utf-8"));

就可以了。

而在vs开发发布后中文还是显示乱码。最后在网上找到不少,经过尝试发现原来是QTextCodec::codecForName("GB18030")失败了,返回NULL,导致setCodecForCStrings失败,由于vs2008本身也是gb18030编码的,所以改成如下代码就可以正常显示中文了

QString strLibPath(QDir::toNativeSeparators(QApplication::applicationDirPath())+QDir::separator()+"plugins");

//增加可用动态库路径

QApplication::addLibraryPath(strLibPath);

QTextCodec *codecs = QTextCodec::codecForName("GB18030");

if (NULL == codecs)

{

codecs = QTextCodec::codecForLocale();

}

QTextCodec::setCodecForCStrings(codecs);

0 0
原创粉丝点击