ITKeyword,专注技术干货聚合推荐

注册 | 登录

Qt字符串编码处理

tennysonsky 分享于

2020腾讯云10周年活动,优惠非常大!(领取2860元代金券),
地址https://cloud.tencent.com/act/cps/redirect?redirect=1040

2020阿里云最低价产品入口,含代金券(新老用户有优惠),
地址https://www.aliyun.com/minisite/goods

推荐:GBK编码字符串转UTF-8

由于项目需要, 需要把GBK编码的字符串转成UTF-8编码, 网上随手搜了一下, 找到些样例代码, 可以用, 不过很恶心, 竟然把字符数值转成二进制的字符串形式进行操作,

1、Qt字符串编码说明

从Qt操作得到的字符串都是utf-8

如果使用标准C(ANSI C)库函数,如果包含中文,

推荐:字符编码GBK和UTF-8

转载于作者 : 吴秦(http://www.cnblogs.com/skynet/) 相信大家一定碰到过,打开某个网页,却显示一堆像乱码,如"бЇЯАзЪСЯ"、"�"?还记得HTTP

则标准C库函数则需要GBK编码。

//需要头文件#include <QTextCodec>
QTextCodec *codec = QTextCodec::codecForName("GBK"); 
 //fileName为QString类型 //codec->fromUnicode();把utf-8转化为GBK,返回值为QByteArray(字节数组) //QByteArray.data()字节数组转换为char *
char *file = codec->fromUnicode(fileName).date(); 

Qt控件显示中文,必须是utf-8才能正常显示

//假如从文件中读取到中文内容为gbk编码
fgets(buf, sizeof(buf), fp); 

//需要头文件#include <QTextCodec>
QTextCodec *codec = QTextCodec::codecForName("GBK"); 

//把一个GBK编码的字符串转化utf-8,同时将char *转换为QString类型
QString str = codec->toUnicode(buf); 

2、QString和char *转换

//QString为Qt字符串类型
QString str = "hello world";
//QString -> const char *
const char *p = str.toStdString().data(); 

char *p = "hello world";
QString str = p; //char * -> QString

推荐:关于Qt的字符编码问题

         QT使用Unicode来存储,绘制以及操作字符串。在很多情况下,可能想要使用不同的编码方式来处理数据。例如大部分的日语文件都被存储在 Shift-JIS或者 ISO

1、Qt字符串编码说明 从Qt操作得到的字符串都是utf-8 如果使用标准C(ANSI C)库函数,如果包含中文, 则标准C库函数则需要GBK编码。 //需要头文件#include <QTextCodec>QTextCodec *codec = QTe

相关阅读排行


相关内容推荐

最新文章

×

×

请激活账号

为了能正常使用评论、编辑功能及以后陆续为用户提供的其他产品,请激活账号。

您的注册邮箱: 修改

重新发送激活邮件 进入我的邮箱

如果您没有收到激活邮件,请注意检查垃圾箱。