个人遇到的QT中文编码问题

来源:互联网 发布:淘宝客服工作周报 编辑:程序博客网 时间:2024/05/17 06:13

        最近在用QT完成一个程序时遇到一个困扰了我很久的问题,首先说明一下,在本机上的编译环境为QT Creator+ubuntu。编译完成后copy到其他机器的ubuntu系统中运行(不管装了QT环境没有,现象都一样),结果双击无任何反应,到命令行下运行,提示segmentation default.
        刚开始真是一头雾水,不知道从何处下手去找问题,无奈,只得用qDebug一步一步进行提示,才找到点眉目,发现了一些规律,就是当运行到fromUnicode()或是toUnicode()时就会出现以上提示,例如:

        由于在程序中没有对codec的值就以判断,codec的值为0时当然就出错了。(刚开始还不知道这个问题,也是找了一些相关的资料才发现的。)出错原因也略知一二了,那就是ubuntu中默认没有提供对中文编码(包括GBK,GB18030,GB2312都试过了)的支持,即使QT中有中文编码的头文件,程序也不会主动去找,当然在本机中编译运行的时候可能就找到了中文编码的头文件或库(这是我的猜想,具体我也还没弄明白,疑惑中~).

        原因找到了,但仍然不知道怎么去解决,知道在网上找到这样一篇文章,受到了很大启发:
http://hi.baidu.com/gpsplus/blog/item/1d5354a7d843029cd1435894.html

我的解决方法如下:
1.在qt安装目录qt/src/plugins/codecs/cn下找到qgb18030codec.h和qgb18030codec.cpp拷贝到程序目录下
2.在程序中加入

以上有错误的两句就变成


这样就能找到中文编码了,不会出现以上错误提示了。

原创粉丝点击