Qt源程序 在 linux 与 windows 下因源文件编码问题导致中文乱码
来源:互联网 发布:单片机控制的智能台灯 编辑:程序博客网 时间:2024/04/29 21:21
当Qt编辑器使用系统编码的默认设置时
在Linux下,源程序是是用UTF-8编码的。
对于源文件中一个像“abc”这样的C语言字符串是不包含编码类型信息的,而Qt中QString是以Unitcode来保存字符串的。所以在对QString 对象进行初始化时QString 如果不知道编码方式就很可能出现乱码。
解决办法是在main中设置好编码方式。
windows :
QTextCodec *codec = QTextCodec::codecForName("GBK"); QTextCodec::setCodecForLocale(codec); QTextCodec::setCodecForCStrings(codec); QTextCodec::setCodecForTr(codec);
Linux:
QTextCodec *codec = QTextCodec::codecForName("UTF-8"); QTextCodec::setCodecForLocale(codec); QTextCodec::setCodecForCStrings(codec); QTextCodec::setCodecForTr(codec);
值得注意的是,所有QString的赋值在时间上都必是在上述代码之后。这意味着不可以为全局的const QString赋值,全局的QString也不能在定义时初始化。
如果你是在Windows中进行编程,当你把文件复制到Linux时,中文会出现乱码,Qt Creater会提示你在当前编码下无法编辑(如果没有提示,可能是Qt的版本太低),并有一个让你重新选择编码的按钮。这时选择GBK的方式打开文件,把文本复制出来,粘贴到一个新建的文本文件上,另存为UTF-8编码就可以正常显示了。 记得在main中把编码改成
QTextCodec *codec = QTextCodec::codecForName("UTF-8");
- Qt源程序 在 linux 与 windows 下因源文件编码问题导致中文乱码
- Linux 与 Windows下QT 显示MySQL 中文乱码问题
- Windows下编码在Linux系统下中文乱码解决方案
- linux下QT程序与windows程序中文字符串传输编码问题的一点解决,utf8转gbk
- Windows下Qt程序在Linux环境下运行中文乱码解决
- Linux/Windows下MySQL5.6的修改字符集编码为UTF8(解决中文乱码问题)
- windows中的QT项目移植到linux下出现中文乱码问题
- QT在linux下中文显示问题
- Linux下Qt中文乱码
- windows下的中文文件名共享在linux下显示乱码的问题
- windows下压缩的文件在linux下解压后中文乱码问题
- winows转linux下的QT工程编码乱码问题
- 解决QT在VS下中文乱码的问题
- 解决在linux下用eclipse打开windows文本文件产生中文乱码的问题
- 解决linux/Ubuntu下Qt creater 界面程序在编译运行后无法显示中文或中文乱码问题!
- Windows与Linux下Base64编码问题
- Weka在Windows环境下中文乱码问题
- Perl 在windows下打印中文乱码问题
- C#对鼠标滚轮的实现
- 容器资源 vs 本地资源
- patch 的制作方法
- JSP解压ZIP压缩文件
- Android 远程链接 daemon not running 解决方法
- Qt源程序 在 linux 与 windows 下因源文件编码问题导致中文乱码
- poj 3273 Monthly Expense
- C#鼠标滚轮处理滚动条滚动
- POCO::XML(一) 简单写XML文档
- VC中将uri转为对应的字符
- SQLite3的各个函数(全)
- 揭秘jbpm流程引擎内核设计思想及构架
- C++设计模式之七:Bridge(桥接器)
- GridViewTest