QT字符编码开发中遇到了很多坑,一不小心就会出现中文乱码, 在这里小结一下。

  1. QString本身是编码是unicode
  2. 在windows下local8Bit是GBK
  3. 源代码即.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;
}

参考文章:

http://www.cnblogs.com/phoenixlaozhu/articles/2553180.html (这篇写很不错,推荐)

http://blog.csdn.net/ak47zhangzhiwei/article/details/7895422

QString 中文编码转换相关推荐

  1. 一网打尽中文编码转换---6种编码30个方向的转换

    一网打尽中文编码转换--6种编码30个方向的转换 1.问题提出 在学编程序时,曾经有人问过"你可以编一个记事本程序吗?"当时很不屑一顾,但是随着学习MFC的深入,了解到记事本程序也 ...

  2. [运维]PowerShell简体中文编码转换

    [运维笔记]PowerShell简体中文编码转换 本文地址: https://blog.csdn.net/qq_28550263/article/details/121310472 以下这个函数用于将 ...

  3. mfc 中文乱码转换为正常中文_中文编码转换

    中文编码转换--6种编码30个方向的转换 1.问题提出 在学编程序时,曾经有人问过"你可以编一个记事本程序吗?"当时很不屑一顾,但是随着学习MFC的深入,了解到记事本程序也并非易事 ...

  4. python3中文编码转换显示

    在python3中: print(info.toJsonStr()) 结果: {"pnt_name": "698\u58a9-z\u8f74\u503e\u89d2-16 ...

  5. C++:中文编码转换

    在介绍如何使用C++11标准库进行中文编码转换之前,先说一下byte string.multibyte string.wide string之间的区别. byte string 由8比特的字节组成的字 ...

  6. qt QString数值转换格式化不足补0 QString十进制转换不足补0

    int num = 1; QString("%1").arg(num,2, 10, QChar('0')); 这样输出的就是01. 其中2代表要输出几位,10代表10进制转换,QC ...

  7. QT环境中 _TCHAR 和 QString 互相转换

    在windows下的QT编程中,如果涉及到使用微软的API,那么不可避免使用_TCHAR这些类型,所以会涉及跟QString类型的转换. 代码如下: #ifdef UNICODE#define QSt ...

  8. java unicode 转换_Java unicode中文编码转换和反转

    在java的很多配置文件中,尤其是国际化资源中经常遇到类似\uf432这样的unicode编码,搜集了下该编码相关的资料,大致处理方法有如下: 1.Unicode转 汉字字符串. 这个过程最简单的方式 ...

  9. QT int QString char转换

    http://ibeyond.blog.51cto.com/1988404/373948 转载于:https://www.cnblogs.com/helloweworld/archive/2012/1 ...

  10. Java中文编码转换与字节长度判断

    引言 与第三方通信的过程中,往往涉及到报文中包含中文的情况,此时的报文长度将由于编码的类型不同产生变化,此时需要通过根据双方接口要求进行中文的转码. 方法 主要是使用String类型中的.getByt ...

最新文章

  1. 【图像处理】图像内插“最近邻插值 最近邻内插法(Nearest Neighbour Interpolate)”代码演示(调整图像大小、放大、缩小)
  2. flash 游戏 ui 制作方案
  3. Easyui入门视频教程 第11集---Window的使用
  4. 化浆池是什么东西_一种双工位浆化池的制作方法
  5. matlab 运行 释放内存,怎么能释放已经使用的内存
  6. mysql ssl编译_centos编译安装配置支持ssl加密的mysql replication
  7. uvalive3983Robtruck
  8. 5. wordpress 简单加速 ---gzip
  9. 设计模式之模版方法模式
  10. OCS 2007 R2 标准版部署
  11. vue学习笔记-6-属性绑定
  12. 新年礼物送什么好?平价实用的蓝牙耳机推荐
  13. 针对平层住宅的分布式无线组网方案(含万兆NAS)
  14. mysql 出现撇号 _Navicat使用教程:如何在MySQL中定位和删除有重复意义的值
  15. Milvus 群星闪耀时|又一个小目标达成 :社区正式突破 15,000 星!
  16. 完整简洁的Oracle获得汉字字符串拼音首字母和全拼的函数
  17. html边框显示长短调整,CSS之border边框长度控制
  18. 一个关于vmware虚拟机没有声音的玄学解决方案
  19. Atcoder Codefestival Exhibition/Team Relay/Tournament Round 简要题解
  20. DM8168 - BT656格式视频采集

热门文章

  1. 数据预处理之无量纲化、缺失值处理(三)
  2. Hinton介绍胶囊理论的论文
  3. CVPR 2022 Oral | 视频文本预训练新SOTA,港大、腾讯ARC Lab推出基于多项选择题的借口任务
  4. jzoj 4399: 加减乘除模五则运算
  5. IO_CELL里的slew rate control
  6. Failed to load resource: the server responded with a status of 404 (Not Found) favicon.ico文件找不到
  7. 网上资源之WEB前端
  8. 电路基础-交流电-正弦量和相量
  9. 密码学_最近在论证一个问题,到底是先有鸡还是先有蛋
  10. 数据三等分离散python_数据自习室01-描述性统计量