Qt Windows/Linux支持中文编码
2012-04-27 20:40
483 查看
Qt中经常需要用到中文,不论是字符串还是路径名。还好Qt提供了QTextCodec类,该类具有强大的编码格式转换功能,提供了世界上大多数常用的字符编码格式。
Qt中使用QString的字符串采用的是Unicode编码,我们使用的Windows系统是GBK编码(一种中文编码),linux下通常使用的是UTF-8编码。
1.Windows下是使用中文
在main()函数内添加如下:
2.Linux下
将上面的"GBK"换作"UTF-8"。
3.其他情况
有时,即使进行了上面的添加,在其他的文件内使用中文时还是会出现乱码的情况(你还不说,我真遇到过,之纠结。。。)。这时,有另外的解决办法
比如QString类型的tr("中文"),这里本来该显示"中文"的结果显示了乱码,那么将tr("中文")替换为
QTextCodec::codecForName("GBK")->toUnicode("中文")
这样就会正常显示中文了。实际上这也是一种防止中文出现乱码的解决方法,只是这样的话每个有QString串中文的地方都要做如此修改,这也没办法,谁让加了那三句话还是乱码呢。
4.题外话
当然,Qt提供了各国语言的翻译,。不过我们写的程序只是国内用,所以用不着那么高端的功能,在程序中都写成中文就是。
Qt中使用QString的字符串采用的是Unicode编码,我们使用的Windows系统是GBK编码(一种中文编码),linux下通常使用的是UTF-8编码。
1.Windows下是使用中文
在main()函数内添加如下:
#include <QTextCodec> QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK")); //路径名支持中文 QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK")); //QString支持中文 QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GBK")); //string支持中文
2.Linux下
将上面的"GBK"换作"UTF-8"。
3.其他情况
有时,即使进行了上面的添加,在其他的文件内使用中文时还是会出现乱码的情况(你还不说,我真遇到过,之纠结。。。)。这时,有另外的解决办法
比如QString类型的tr("中文"),这里本来该显示"中文"的结果显示了乱码,那么将tr("中文")替换为
QTextCodec::codecForName("GBK")->toUnicode("中文")
这样就会正常显示中文了。实际上这也是一种防止中文出现乱码的解决方法,只是这样的话每个有QString串中文的地方都要做如此修改,这也没办法,谁让加了那三句话还是乱码呢。
4.题外话
当然,Qt提供了各国语言的翻译,。不过我们写的程序只是国内用,所以用不着那么高端的功能,在程序中都写成中文就是。
相关文章推荐
- Qt Windows/Linux支持中文编码
- linux下QT程序与windows程序中文字符串传输编码问题的一点解决,utf8转gbk
- Windows下Qt程序在Linux环境下运行中文乱码解决
- Linux下设置Eclipse编码为GBK进而支持中文
- url带中文参数请求在windows下和linux下的编码问题
- Linux 与 Windows下QT 显示MySQL 中文乱码问题
- 最近在Ubuntu9.04下用tomcat发布一个用java开发的WEB项目(tomcat6+mysql)。在windows下编码完全没问题,到了linux下后,到处一大堆得乱码(主要是针对中文)。上
- php的filesystem相关function+utf-8的编码+windows时不支持中文文件名(如unlink,file_exists)
- NitroShare 是一个局域网文件传输工具,支持 Windows、OS X 和 Linux。基于 Qt 开发。
- Qt源程序 在 linux 与 windows 下因源文件编码问题导致中文乱码
- Linux下设置Eclipse编码为GBK进而支持中文
- Linux/Windows下MySQL5.6的修改字符集编码为UTF8(解决中文乱码问题)
- windows下Qt代码移植到linux下的中文乱码问题解决
- 〖Windows〗Linux的Qt程序源码转换至Windows平台运行,编码的解决
- windows中的QT项目移植到linux下出现中文乱码问题
- Windows下编码在Linux系统下中文乱码解决方案
- 【linux学习笔记】Sublime Text3支持GB2312和GBK编码以及中文输入法
- Linux下mysql 修改编码集和校对集使它支持中文
- 【linux学习笔记】Sublime Text3支持GB2312和GBK编码以及中文输入法
- Linux下设置Eclipse编码为GBK进而支持中文