windows中的QT项目移植到linux下出现中文乱码问题
来源:互联网 发布:唾液可以杀菌消炎 知乎 编辑:程序博客网 时间:2024/04/27 21:27
众所周知QT具有很好的移植性,今天正好闲的蛋疼,把一个windows上的界面程序移植到了linux下,于是发现了中文乱码问题,windows中的效果图:
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下Qt代码移植到linux下的中文乱码问题解决
- windows下c++源代码移植到linux出现乱码解决办法。
- 【Qt移植到linux】问题 qt界面无法输入中文,中文不显示,乱码等问题
- Windows 平台下编辑文本复制到Linux下后,中文字符出现乱码的问题
- windows下eclipse java开发能正常运行,移植到linux下,从Mysql中读取数据,出现中文乱码
- Linux 与 Windows下QT 显示MySQL 中文乱码问题
- 关于linux下项目移植到windows上的问题
- 【Qt移植到linux】问题7 qt界面无法输入中文,中文不显示,乱码等问题
- 把linux运行的Qt程序移植到windows下出现的错误
- 解决在windows目录下的文件到ubuntu系统下出现的中文乱码问题
- windows项目导入到ubuntu系统下出现中文乱码的原因和解决方法
- windows下eclipse项目导入到ubuntu出现中文乱码解决方案
- Linux下打开在Windows下创建的项目出现中文乱码
- 移植unbuntu Qt项目到 windows 下(包含socket)
- java程序移植到linux上中文乱码处理问题
- java程序移植到linux上中文乱码处理问题
- Qt源程序 在 linux 与 windows 下因源文件编码问题导致中文乱码
- hdu 3790 最短路径问题 迪杰斯特拉
- 大数求和
- Android利用convertView优化ListView性能
- 吴超-----solr添加中文IK分词器,以及配置自定义词库
- js去除字符串前后空格
- windows中的QT项目移植到linux下出现中文乱码问题
- Android 模拟器genymotion安装,eclipse 插件
- Linux 添加证书
- js去字符串前后空格
- eclipse 学习第一天 eclipse基本设置
- spring 集成mybatis——多数据源切换
- [leetcode] 57.Insert Interval
- ACDREAM 03A 雷霆战机(贪心专场)
- Android自动获取短信验证码