您当前的位置: 首页 >  qt

龚建波

暂无认证

  • 2浏览

    0关注

    312博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Qt文本编码转换,QTextCodec的简单使用

龚建波 发布时间:2019-03-02 17:43:17 ,浏览量:2

前言

在处理文本数据的时候,我们经常遇到中文乱码、编码转换等问题,之前学习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()            
关注
打赏
1655829268
查看更多评论
0.2166s