QT下中文字符编码的转换
来源:互联网 发布:怎么看淘宝卖家地址 编辑:程序博客网 时间:2024/05/14 04:58
转载于 http://blog.csdn.net/vah101/article/details/6093717
通常在qt程序的main函数中,经常会有设置字符编码的函数:
QTextCodec :: setCodecForTr( QTextCodec :: codecForName( "GB18030" )); //为QObject::tr设置字符编码
QTextCodec :: setCodecForLocale( QTextCodec :: codecForName( "GB18030" )); //如果在linux上,设置local为gb18030可能会导致读取
//或输出的unicode中文字符不能正确显示
QTextCodec ::setCodecForCStrings(QTextCodec :: codecForName( "GB18030" ) ); //为QString设置字符编码,默认情况下为Latin1
比如之后,就可以输入
QLabel *testLabel = new QLabel( tr("测试") );
这样,不管是在windows上还是在X11平台上,就可以看到正确的显示结果了。
另外,在windows下,代码中输入的字符默认中文编码是GBK,但Linux上默认的中文编码的UNICODE,所以将windows上编写的含有中文qt代码,拿到linux上的QT creator修改时,首先要选择中文编码格式,否则代码中的汉字就会是乱码。
常用的GBK转换UTF8的代码如下,用了http://blog.csdn.net/ACCP_2008123456/archive/2010/11/05/5988704.aspx上的例子
QTextCodec *gbk = QTextCodec::codecForName("gb18030");
QTextCodec *utf8 = QTextCodec::codecForName("utf-8");
QTextCodec::setCodecForTr(gbk);
QTextCodec::setCodecForLocale(gbk);
QString utfStr = QObject::trUtf8(readByte); //utf-8
QString gbkStr = QObject::tr("中文"); // gbk
QString utf2gbk = gbk->toUnicode(readStr.toLocal8Bit()); // utf8 conver gbk
QString gbk2utf1 = utf8->toUnicode(utf2gbk.toUtf8()); // gbk convert utf8
QString g2u = gbk->toUnicode(gbk->fromUnicode(readStr)); // gbk convert utf8
- QT下中文字符编码的转换
- QT下中文字符编码的转换
- QT的字符编码转换 .
- QT的字符编码转换
- 字符编码转换 QT
- QT字符编码转换,可用于中文内码传输
- QT字符编码转换,可用于中文内码传输
- 中文字符编码的相互转换
- QT 下把编辑框内的中文字符转换为 char*
- golang中文字符编码转换
- java下的字符编码转换总结
- Linux 下的字符编码转换
- 上传中文字符到服务器的编码转换的解决方法
- Qt的中文编码
- Qt的中文编码
- 中文字符编码的相互转换(一)
- 中文字符编码的相互转换(二)
- 中文字符编码的相互转换(三)
- hdu 1520 (树形DP)
- ios中socket简单编程总结
- 棋盘问题---状态压缩
- 2440开发板linux系统移植3G拨号上网收发短(二)
- Qt学习之路_5(Qt TCP的初步使用)
- QT下中文字符编码的转换
- hdu 4628 Pieces (状态压缩dp)
- 二分匹配题集分类,从入门到精通
- 面向对象设计的基本原则
- Vi与Ultraedit实现“删除包含某一个关键字所有行”功能的PK
- 将字符串中的‘*’移动到字符串最前面且不改变原来非‘*’字符的顺序
- Android双向滑动菜单完全解析,教你如何一分钟实现双向滑动特效
- HDU 4628
- hdu4508 湫湫系列故事——减肥记I (完全背包)