前言
在处理文本数据的时候,我们经常遇到中文乱码、编码转换等问题,之前学习Qt在VS里也是受尽了中文乱码的折磨。其实,QString和QByteArray自带的几个函数可以解决大部分编码问题,而QTextCodec支持更多类型的编码。
“VS中使用Qt显示中文乱码了!”最开始遇到乱码问题,是在VS编写Qt程序时。需要将带中文的字符串显示到界面上,于是我直接setText一个QString,毫无意外的出现了乱码。因为VS默认是系统编码来保存的(gbk)并且设置不方便,所以中文需要这样添加:
//文本或是文件中的中文字符到ui
QString str=QString::fromLocal8Bit("文本编码gbk时中文");
//ui中的中文字符转回去
QString local=str.toLocal8Bit();
而Qt Creator文本编码默认为utf-8,所以可以直接用中文不需要转换的函数。
使用QTextCodec转换编码#include
#include
void test()
{
//utf-8 转 gb2312
{
QTextCodec *gb_code=QTextCodec::codecForName("GB2312");
QTextCodec *u8_code=QTextCodec::codecForName("UTF-8");
QByteArray u8_byte="utf-8中文";
QByteArray gb_byte=gb_code->fromUnicode(u8_code->toUnicode(u8_byte));
qDebug()
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?