QString,string,char* 在utf8和gbk不同编码下的相互转化
关于编码简介: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;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构