windows中的QT项目移植到linux下出现中文乱码问题
2015-05-09 18:10
645 查看
众所周知QT具有很好的移植性,今天正好闲的蛋疼,把一个windows上的界面程序移植到了linux下,于是发现了中文乱码问题,windows中的效果图:
linux下的效果图:
出现了中文乱码问题233333333
通过查阅资料【1】【2】发现,需要在linux端的代码稍作修改
ie 在main中添加如下代码:
此时问题完美解决。
但是这段话在我们的windows中编译时遇到了错误:
setCodecForTr 和 setCodecForCStrings消失了23333333
经过思考发现,问题的本质在于,我们windows中的qt用的是5.2版本
而在qt5中已经取消了setCodecForTr 和 setCodecForCStrings函数了【3】
而我们的linux中所用的qt还是默认安装版本qt4的,qt5中tr()默认utf8编码,而qt5之前的版本都是默认latin-1编码的,也就是说尽管我们的源文件都是utf8的,但在make的时候tr()中的字符自动被解释成了拉丁字符,从而造成了中文乱码的问题,因而需要显示声明一下所用的字符集为utf8.
ps:可以通过which查看linux下qmake 的存放路径(原谅我是新手)
参考文献:
1.linux下,Qt无法显示中文 http://www.itjie.wang/qt/62082.html
2.【Qt移植到linux】问题7 qt界面无法输入中文,中文不显示,乱码等问题 http://blog.163.com/qimo601@126/blog/static/15822093201382611615112/
3.QTextCodec中的setCodecForTr等终于消失了 (Qt5) http://idas643.blog.163.com/blog/static/167104838201312345727951/
linux下的效果图:
出现了中文乱码问题233333333
通过查阅资料【1】【2】发现,需要在linux端的代码稍作修改
ie 在main中添加如下代码:
QTextCodec *codec = QTextCodec::codecForName("UTF-8"); QTextCodec::setCodecForTr(codec); QTextCodec::setCodecForLocale(codec); QTextCodec::setCodecForCStrings(codec);
此时问题完美解决。
但是这段话在我们的windows中编译时遇到了错误:
setCodecForTr 和 setCodecForCStrings消失了23333333
经过思考发现,问题的本质在于,我们windows中的qt用的是5.2版本
而在qt5中已经取消了setCodecForTr 和 setCodecForCStrings函数了【3】
而我们的linux中所用的qt还是默认安装版本qt4的,qt5中tr()默认utf8编码,而qt5之前的版本都是默认latin-1编码的,也就是说尽管我们的源文件都是utf8的,但在make的时候tr()中的字符自动被解释成了拉丁字符,从而造成了中文乱码的问题,因而需要显示声明一下所用的字符集为utf8.
ps:可以通过which查看linux下qmake 的存放路径(原谅我是新手)
参考文献:
1.linux下,Qt无法显示中文 http://www.itjie.wang/qt/62082.html
2.【Qt移植到linux】问题7 qt界面无法输入中文,中文不显示,乱码等问题 http://blog.163.com/qimo601@126/blog/static/15822093201382611615112/
3.QTextCodec中的setCodecForTr等终于消失了 (Qt5) http://idas643.blog.163.com/blog/static/167104838201312345727951/
相关文章推荐
- windows下Qt代码移植到linux下的中文乱码问题解决
- windows下eclipse java开发能正常运行,移植到linux下,从Mysql中读取数据,出现中文乱码
- 【Qt移植到linux】问题 qt界面无法输入中文,中文不显示,乱码等问题
- Linux 与 Windows下QT 显示MySQL 中文乱码问题
- 【Qt移植到linux】问题7 qt界面无法输入中文,中文不显示,乱码等问题
- Windows 平台下编辑文本复制到Linux下后,中文字符出现乱码的问题
- [-项目随笔-] 问题:在windows和linux下运行正常,solaris出现中文问题~
- Linux下打开在Windows下创建的项目出现中文乱码
- mysql出现中文乱码或不能输入中文问题的Windows或Linux系统解决方法
- 在windows下的qt5.7.1 的纯C或C++项目命令行中文乱码、无法编译等问题解决
- Windows文件转到linux后,出现中文乱码问题
- mysql--出现中文乱码或不能输入中文问题的Windows或Linux系统解决方法
- windows平台下编辑的内容传到linux平台出现中文乱码的解决办法
- QT 5.9版本 使用MSVC2015编译时出现中文字符乱码问题的解决方法
- java项目在windows和linux下传递json数据不乱码问题
- 新手入门:windows系统下wbe项目迁移至Linux系统下乱码问题
- 上传中文文件到linux文件出现乱码问题的解决方案
- linux解决中文安装后出现乱码的问题
- Java web项目Linux下部署的中文乱码问题
- javaweb项目出现中文乱码问题的解决方案。