博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
QString,string,char* 在utf8和gbk不同编码下的相互转化
阅读量:6888 次
发布时间:2019-06-27

本文共 1364 字,大约阅读时间需要 4 分钟。

关于编码简介:ascii编码是最开始的编码规则本,里面只收纳了英文、特殊字符、数字等有限字符,采用的是8位一个字节的方式进行编码对照;unicode在ascii码的基础上进行了升级扩展,立志将全世界所有国家的语言文字等字符都编进去,故又被称为万国码;unicode采用的编码方式为统一四字节表示一个字符;由于unicode采用的是四个字节表示一个字符这种方式极大地浪费了资源和空间,所以又出现了对unicode进行优化且兼容ascii码的utf-8,又称为可变长度字符编码,采用的规则是英文使用一个字节去表示(也就是兼容了ascii码在内),中文则是三个字节去表示一个字符

 

1. QString 转 string 

1 QString qstr = "测试";2 string  str = qstr.toStdString();

在qt4中,QString::toStdString() 转的string的编码是Unicode 

需要转unicode编码的string,用toStdString(),需要转utf-8编码的string,用

1 QString qstr = "测试";2 string  str = qstr.toUtf8().data();

在qt5中,QString::toStdString()转的string的编码是utf-8

需要转unicode编码的string,用

1 QString qstr = "测试";2 string  str = qstr.toLocal8Bit().data()

需要转utf-8编码的toStdString()

1 QString qstr = "测试";2 string  str = qstr.toStdString();

 

2. string 转 QString

因为在qt4和再qt5中的QString::fromStdString()的编码格式的改变,转QString略有不同。

在qt4中:utf-8 string 转QString

1 string str = "测试";2 QString qstr =QString::fromUtf8(str.c_str());

Unicode  string 转 QString

1 string  str = "测试";2 QString qstr = QString::fromStdString(str);

在qt5中:utf-8 string 转QString

1 string  str = "测试";2 QString qstr = QString::fromUtf8(str);

Unicode  string 转 QString

1 string  str = "测试";2 QString qstr = QString::fromStdString(str);

 

3. string 转 char*

1 string str = "测试";2 char* ch = str.c_str();

4. char* 转 string

1 char* ch = "测试";2 string str = ch;

 

转载于:https://www.cnblogs.com/tyche116/p/8665585.html

你可能感兴趣的文章
Elasticsearch refresh vs. flush
查看>>
质量管理:测试基础架构图
查看>>
Windows Server 2008安装SQL Server 2008
查看>>
jsonp的原理?
查看>>
快速开发框架V0.001(免费、100%开源)
查看>>
文件上传与下载/Mail
查看>>
jQuery ajax() 方法
查看>>
怎样安排您的读书时间?
查看>>
IoC
查看>>
一、 Python的基本概念
查看>>
子元素margin影响父元素的问题
查看>>
MUI功能列表
查看>>
为什么沃尔玛和其他大型零售商正联手创建移动支付?
查看>>
ios注册通知NSNotificationCenter(一)
查看>>
poj 3252 Round Numbers (组合数)
查看>>
求两个长度相等的排序数组的上中位数
查看>>
video 全屏时 隐藏controls
查看>>
利用腾讯云为你的域名申请并配置免费SSL一年
查看>>
【转】asp.net 利用Global.asax 捕获整个解决方案中的异常错误
查看>>
一道算法题-换钱
查看>>