版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/xxm524/article/details/74937308
QT字符编码开发中遇到了很多坑,一不小心就会出现中文乱码, 在这里小结一下。
 QString本身是编码是unicode
在windows下local8Bit是GBK
 源代码即.cpp文件是有编码的,不同编译器也有默认编码,如:
微软VS的中的cl采用GBK
Mingw中的g++不带BOM的UTF-8
Linux下的g++ 采用带BOM的UTF-8 这3中编码进行保存
(所以,在代码中hard code中文时, 要搞清楚使用的编译器本身的编码格式)
 
QString GBK2UTF8(const QString &str)
{
    QTextCodec *utf8 = QTextCodec::codecForName("UTF-8");
    return utf8->toUnicode(str.toUtf8());
}
 
QString UTF82GBK(const QString &str)
{
    QTextCodec *gbk = QTextCodec::codecForName("GB18030");
    return gbk->toUnicode(str.toLocal8Bit());
}
 
std::string GBK2UTF8(std::string &str)
{
    QString temp = QString::fromLocal8Bit(str.c_str());
    std::string ret = temp.toUtf8().data();
    return ret;
}
 
std::string UTF82GBK(std::string &str)
{
    QString temp = QString::fromUtf8(str.c_str());
    std::string ret = temp.toLocal8Bit().data();
    return ret;
}

最新文章

  1. linux安装jdk(以centos安装jdk1.7为例)
  2. 01-C#入门(调试和错误处理)
  3. Java 基础知识 练习
  4. jquery的prop()和attr()
  5. 安装包安装服务,点修复出现的错误”Error 1001:指定的服务已存在“ 解决办法
  6. javascript 创建对象及对象原型链属性介绍
  7. Smarty中一些标签的使用
  8. js调用打印机
  9. Idea1.5使用Maven搭建Apache Spark1.6源码阅读环境
  10. jQuery中的DOM操作------复制及包裹节点
  11. 笔记:Spring Cloud Zuul 快速入门
  12. Pixel Recurrent Neural Networks翻译
  13. php笔记(一)php介绍及数据类型
  14. 手把手教你“将系统安装在U盘”上,实现个人系统随身带!
  15. Vue文件中引入img 路径写法
  16. Java类的加载及实例的创建
  17. 第04篇 JDK版本导致Unsupported major.minor version 52.0 error
  18. Android事件总线(一)EventBus3.0用法全解析
  19. php 操作时间、日期类函数
  20. <c:otherwise>

热门文章

  1. 关闭linux命令行屏幕保护
  2. 一行Python代码画心型
  3. MySQL-CentOS7上安装Mysql5.7
  4. Linux环境变量设置declare/typeset
  5. Linux 用户账号与权限管理
  6. Django-模型层(单表操作)
  7. sql中如何获取一条数据中所有字段的名称和值
  8. Linux入侵类问题排查思路
  9. keras神经网络开发知识笔记
  10. UVA 13024: Saint John Festival(凸包+二分 ,判定多个点在凸包内)