当前位置: 代码迷 >> QT开发 >> 在自各儿机子上中文正常显示,其他人机子上显示乱码
  详细解决方案

在自各儿机子上中文正常显示,其他人机子上显示乱码

热度:27   发布时间:2016-04-25 04:13:09.0
在自己机子上中文正常显示,其他人机子上显示乱码
1)在win7下用Qt 4.7.0写的一个应用,在自己机子上一切都正常,但是发到其他人机子上(winxp,vista)时,所有的QLabel的text显示显示都是乱码。
我在main中添加了:
#include <QTextCodec>

QTextCodec::setCodecForTr(QTextCodec::codecForName("GB2312"));
QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));

并且在需要的地方用了tr()

2)我要显示一个图片,然后点击该图片会有所触发,这个功能在自己的机子上正常,但是到其他人的机子上时,图片显示不出,但是点击图片应该出现位置时会有正确的触发。
我的.exe路径:C:\CollarSample\collarsample.exe  图片的路径:C:\CollarSample\images\1.jpg

谢谢解答!
------解决方案--------------------
试下 把qcncodecs4.dll打包在程序里
------解决方案--------------------
把plugins目录下的codecs和imageformats两个目录放到可执行文件目录,随程序一起发布。上述功能用到插件,发布插件有几种方法,这是最简单的一种。
------解决方案--------------------
LZ试一下
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
------解决方案--------------------
LZ试一下
QTextCodec::setCodecForTr(QTextCodec::codecForLocal());
------解决方案--------------------
LZ试试把GB2312啊  UTF-8啊之类的换成System!
我用那些都是乱码。换成system才可以~
QTextCodec *codec = QTextCodec::codecForName("System");  
QTextCodec::setCodecForLocale(codec); 
QTextCodec::setCodecForCStrings(codec);
QTextCodec::setCodecForTr(codec);

这段代码放main.cpp里面~
  相关解决方案