QT utf8编码转gb2312编码,互相转换的源代码
任何编码先转换成统一编码toUnicode(),然后再转出fromUnicode();
gb2312转utf8:
QString ssss=QString::fromLocal8Bit("ceshi我是测试"); //注意此处定义gb2312编码的方式,要使用fromLocal8Bit()
gb2312ToUtf8(ssss);
utf8转gb2312:
入参是utf8编码的字符数组
(注意参数的编码格式一定要对,否则转换不出来,尤其是gb2312ToUtf8()这个函数,极为容易传入unicode编码格式的参数)
上代码:
void gb2312ToUtf8(QString strGb2312){printf("@@@ gb2312 str is:%s\n",strGb2312.toLocal8Bit().data());QTextCodec* utf8Codec= QTextCodec::codecForName("utf-8");QTextCodec* gb2312Codec = QTextCodec::codecForName("gb2312");QString strUnicode= gb2312Codec->toUnicode(strGb2312.toLocal8Bit().data());QByteArray ByteUtf8= utf8Codec->fromUnicode(strUnicode);char *utf8code = ByteUtf8.data();printf("@@@ Utf8 strGb2312toUtf8:%s\n",utf8code);}///void utf8ToGb2312(char *strUtf8){printf("~~~~ utf8 str is:%s\n", strUtf8);QTextCodec* utf8Codec= QTextCodec::codecForName("utf-8");QTextCodec* gb2312Codec = QTextCodec::codecForName("gb2312");QString strUnicode= utf8Codec ->toUnicode(strUtf8);QByteArray ByteGb2312= gb2312Codec ->fromUnicode(strUnicode);strUtf8= ByteGb2312.data();printf("~~~~~ gb2312 strUtf8toGb2312:%s\n", strUtf8);}
修改了一下utf8ToGb2312使之转换后的gb2312字符串类型为QString:
QString utf8ToGb2312(char *strUtf8){printf("~~~~utf8 strUtf8:%s\n", strUtf8);QTextCodec* utf8Codec= QTextCodec::codecForName("utf-8");QTextCodec* gb2312Codec = QTextCodec::codecForName("gb2312");QString strUnicode= utf8Codec ->toUnicode(strUtf8);QByteArray ByteGb2312= gb2312Codec ->fromUnicode(strUnicode);strUtf8= ByteGb2312.data();printf("~~~~~gb2312 strUtf8toGb2312:%s\n", strUtf8);return QString::fromLocal8Bit(strUtf8);//注意这里要fromLocal8Bit()}
QT utf8编码转gb2312编码,互相转换的源代码相关推荐
- 把UTF-8编码转换为GB2312编码
最近在做的广告系统中,碰到了一个问题,广告系统采用的UTF-8编码,而一些使用这套广告系统的频道页面使用的是GB2312编码.当然也有使用UTF-8编码的频道使用这套广告系统. 频道页面是通过嵌入类似 ...
- unicode编码转gb2312编码并显示中文(cjava)
unicode编码转gb2312编码并显示中文(c&java) unicode编码与gb2312编码没有线性关系,只能通过使用编码表的方式查找. C语言 编码表中,前半部分是gb2312编码, ...
- 做网站用UTF-8编码还是GB2312编码?
经常我们打开外国网站的时候出现乱码,又或者打开很多非英语的外国网站的时候,显示的都是口口口口口的字符, WordPress程序是用的UTF-8,很多cms用的是GB2312. 经常我们打开外国网站的时 ...
- html显示蒙古语乱码,做网站用UTF-8编码还是GB2312编码?
经常我们打开外国网站的时候出现乱码,又或者打开很多非英语的外国网站的时候,显示的都是口口口口口的字符, WordPress程序是用的UTF-8,很多cms用的是GB2312. ● 为什么有这么多编码? ...
- 你还在为如何区分ASCII编码、GB2312编码、Unicod、UTF-8编码而烦恼吗,一篇文章让你柳暗花明...
字符编码 我们已经讲过了,字符串也是一种数据类型,但是,字符串比较特殊的是还有一个编码问题. 因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理.最早的计算机在设计时采用8个比特 ...
- linux 下URL中 UTF-8编码、GB2312编码与汉字之间的转换
下面是UTF-8编码的转换代码 #include <string.h> #include <stdio.h> #include <stdlib.h>/* 16进制字 ...
- 黄聪:php中utf-8模板获取GB2312编码页面传递URL中文编码转换方法
$w='中文参数'; mb_convert_encoding($w, 'gb2312', 'utf-8') 转载于:https://www.cnblogs.com/huangcong/archive/ ...
- Python 入门 26 —— ASCII 编码、Unicode 编码、 UTF-32、 UTF-16、 UTF-8、 GB2312 编码、 GBK 编码
计算机存储和处理信息都是以一个8位的二进制字节为单位的,例如:0b 1111 0000.一个字母.汉字等如何用一个二进制的数(编码)来表示呢.在计算机发展初期,因为没有人能预料到计算机会有现在这么大的 ...
- C++将UTF-8编码的文件转化为GB2312编码
C++将UTF-8编码的文件转化为GB2312编码 我需要对一个html网页进行解析,html是使用UTF-8编码的.但是,我使用的visual Studio 19是使用gb2312进行编码的.当读入 ...
- linux下查看文件编码及修改编码
linux下查看文件编码及修改编码 查看文件编码 在Linux中查看文件编码可以通过以下几种方式: 1.在Vim中可以直接查看文件编码 :set fileencoding 即可显示文件编码格式. 如果 ...
最新文章
- Windows10 右键 cmd
- 055_Descriptions描述列表
- mysql sql宽字节注入_sql注入之宽字节注入
- 三通道的黑白图(不同于单通道的普通的黑白图片)
- Vue2.0+ElementUI+PageHelper实现的表格分页
- java发送http post请求报文_Java 用HTTP的方式发送JSON报文请求
- VMware workstation和ESXi的区别
- 大数据之-Hadoop3.x_MapReduce_全排序案例---大数据之hadoop3.x工作笔记0115
- 【9108】模拟数学计算器
- java开启注解扫描,详解Spring框架注解扫描开启之配置细节
- Linux内核学习笔记一
- 从PHP5到PHP7的注意事项
- Ubuntu 9.04正式版下安装Sopcast看在线网络电视
- 矩阵论(补充知识):特征多项式的展开式
- SMAP数据产品介绍与下载方法
- 翻斗式塑料雨量传感器
- 目前国内常用的无纸化会议系统——迅控无纸化
- k-means像素聚类
- Yocto中开发内核的两种方法
- java如何数字竖排输出_Java输出竖排文字