• 5913阅读
  • 5回复

[提问]QT程序发布后的汉字问题 [复制链接]

上一主题 下一主题
离线bmeowner
 

只看楼主 倒序阅读 楼主  发表于: 2012-11-08
QT程序发布后的汉字问题
— 本帖被 XChinux 从 Qt基础编程 移动到本区(2013-04-01) —
各位老大,同样的问题,再重复问一遍。


我vs2005+qt4.7.4编写的代码,本机运行没有问题。发布到一个没有安装vs以及qt的机器上后,汉字处理有问题。排查后发现
QTextCodec::codecForName("GB2312");
QTextCodec::codecForName("GBK");
QTextCodec::codecForName("GB18030");


上述三个返回全部为空指针。只有utf-8可用,但是由于一些方案的限制,只能使用GB2312编码。


我自己也尝试了一些方案来解决:
方案一:


在main函数中增加设置plugins 路径,并将qt安装路径下的plugins 目录拷贝到程序运行目录下,具体为plugins /codecs/,所有的插件都拷贝过来了。

QApplication a(argc, argv);
QString sPath = a.applicationDirPath();
sPath += QString("/plugins");
a.addLibraryPath(sPath);


但是结果还是那样,没有什么帮助。
我程序运行路径中没有包含中文名称。


方案二:
程序运行路径下,写了一个qt.conf文件,内容为:
[Paths]Prefix=.Libraries=../libBinaries=../binPlugins=../plugins


并在main函数中增加代码:
QDir::setCurrent(QApplication::applicatoinDirPath());


将qt安装路径下的 plugins 目录拷贝到程序运行路径的上一级目录中,文件内容保持不变。为避免意外情况,我将qt的插件在plugins 目录以及plugins/codecs路径下各放了一份,但是仍然没有什么帮助。


现在有些黔驴技穷了,请各位帮忙,看看如何解决?



离线XChinux

只看该作者 1楼 发表于: 2012-11-08
请搜索历史帖,老生常谈了,都不愿一遍又一遍的重复回答。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线XChinux

只看该作者 2楼 发表于: 2012-11-08
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线0xffffh

只看该作者 3楼 发表于: 2012-11-08
不要这样写,用translator实现,这样才是正规的用法。
离线roywillow

只看该作者 4楼 发表于: 2012-11-08
不用中文是最简单的解决方法
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线myseemylife

只看该作者 5楼 发表于: 2012-11-08
引用第4楼roywillow于2012-11-08 09:01发表的  :
不用中文是最简单的解决方法


握爪~鼓掌~哈哈
蠢笨的愚钝~
快速回复
限100 字节
 
上一个 下一个