任何编码先转换成统一编码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编码,互相转换的源代码相关推荐

  1. 把UTF-8编码转换为GB2312编码

    最近在做的广告系统中,碰到了一个问题,广告系统采用的UTF-8编码,而一些使用这套广告系统的频道页面使用的是GB2312编码.当然也有使用UTF-8编码的频道使用这套广告系统. 频道页面是通过嵌入类似 ...

  2. unicode编码转gb2312编码并显示中文(cjava)

    unicode编码转gb2312编码并显示中文(c&java) unicode编码与gb2312编码没有线性关系,只能通过使用编码表的方式查找. C语言 编码表中,前半部分是gb2312编码, ...

  3. 做网站用UTF-8编码还是GB2312编码?

    经常我们打开外国网站的时候出现乱码,又或者打开很多非英语的外国网站的时候,显示的都是口口口口口的字符, WordPress程序是用的UTF-8,很多cms用的是GB2312. 经常我们打开外国网站的时 ...

  4. html显示蒙古语乱码,做网站用UTF-8编码还是GB2312编码?

    经常我们打开外国网站的时候出现乱码,又或者打开很多非英语的外国网站的时候,显示的都是口口口口口的字符, WordPress程序是用的UTF-8,很多cms用的是GB2312. ● 为什么有这么多编码? ...

  5. 你还在为如何区分ASCII编码、GB2312编码、Unicod、UTF-8编码而烦恼吗,一篇文章让你柳暗花明...

    字符编码 我们已经讲过了,字符串也是一种数据类型,但是,字符串比较特殊的是还有一个编码问题. 因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理.最早的计算机在设计时采用8个比特 ...

  6. linux 下URL中 UTF-8编码、GB2312编码与汉字之间的转换

    下面是UTF-8编码的转换代码 #include <string.h> #include <stdio.h> #include <stdlib.h>/* 16进制字 ...

  7. 黄聪:php中utf-8模板获取GB2312编码页面传递URL中文编码转换方法

    $w='中文参数'; mb_convert_encoding($w, 'gb2312', 'utf-8') 转载于:https://www.cnblogs.com/huangcong/archive/ ...

  8. Python 入门 26 —— ASCII 编码、Unicode 编码、 UTF-32、 UTF-16、 UTF-8、 GB2312 编码、 GBK 编码

    计算机存储和处理信息都是以一个8位的二进制字节为单位的,例如:0b 1111 0000.一个字母.汉字等如何用一个二进制的数(编码)来表示呢.在计算机发展初期,因为没有人能预料到计算机会有现在这么大的 ...

  9. C++将UTF-8编码的文件转化为GB2312编码

    C++将UTF-8编码的文件转化为GB2312编码 我需要对一个html网页进行解析,html是使用UTF-8编码的.但是,我使用的visual Studio 19是使用gb2312进行编码的.当读入 ...

  10. linux下查看文件编码及修改编码

    linux下查看文件编码及修改编码 查看文件编码 在Linux中查看文件编码可以通过以下几种方式: 1.在Vim中可以直接查看文件编码 :set fileencoding 即可显示文件编码格式. 如果 ...

最新文章

  1. Windows10 右键 cmd
  2. 055_Descriptions描述列表
  3. mysql sql宽字节注入_sql注入之宽字节注入
  4. 三通道的黑白图(不同于单通道的普通的黑白图片)
  5. Vue2.0+ElementUI+PageHelper实现的表格分页
  6. java发送http post请求报文_Java 用HTTP的方式发送JSON报文请求
  7. VMware workstation和ESXi的区别
  8. 大数据之-Hadoop3.x_MapReduce_全排序案例---大数据之hadoop3.x工作笔记0115
  9. 【9108】模拟数学计算器
  10. java开启注解扫描,详解Spring框架注解扫描开启之配置细节
  11. Linux内核学习笔记一
  12. 从PHP5到PHP7的注意事项
  13. Ubuntu 9.04正式版下安装Sopcast看在线网络电视
  14. 矩阵论(补充知识):特征多项式的展开式
  15. SMAP数据产品介绍与下载方法
  16. 翻斗式塑料雨量传感器
  17. 目前国内常用的无纸化会议系统——迅控无纸化
  18. k-means像素聚类
  19. Yocto中开发内核的两种方法
  20. java如何数字竖排输出_Java输出竖排文字

热门文章

  1. 【专题】拉格朗日中值定理求极限
  2. MatConvNet对自己的图片分两类及提取图片特征
  3. ue4材质节点大全_UE4材质节点大全
  4. 乐高机械系列01:曲柄滑块剪叉机构
  5. adb工具+使用adb安装apk
  6. jquery timepicker
  7. 基于Qt软件框架设计
  8. iredmail mysql 配置_CentOS下iRedMail安装配置
  9. QLabel(一) 内容换行
  10. Mac 修改hosts文件