Qt中文转换为utf8编码的url编码格式

时间:2022-10-16 14:07:46
如题,请问Qt如何将中文汉字比如“我们”,转化为“%E6%88%91%E4%BB%AC”?

4 个解决方案

#1


你可以自己编写一段代码啊,使用BYTE类型获取中文字串后,写到新的字串中,写入前进行判断,如果是中文,则先写入一个“%”,之后判断每个字节的值,对应的高四位和低四位转换成ASCII码,比如说0xD2 0xBD 这个GB2312编码汉字“医”,先进行UTF-8转换,转换成0xE5 0x8C 0xBB,这样的三个字节的数据,之后转换的时候变成“%”“E”“5”“%”“8”“C”“%”“B”“B”,这样就行了。 

#2


QTextCodec *utf8 = QTextCodec::codecForName("utf-8");
QByteArray encoded = utf8->fromUnicode(QString::fromUtf8("我们")).toPercentEncoding();
现在encoded里面装的就是以百分号编码的字符。(注意源码字符集的问题,我这里使用的是QString::fromUtf8)

#3


做过类似爬虫的事情。
楼主这样做的目的是什么?透露下呗

#4


Qt中文转换为utf8编码的url编码格式,挺好。。。。 Qt中文转换为utf8编码的url编码格式

#1


你可以自己编写一段代码啊,使用BYTE类型获取中文字串后,写到新的字串中,写入前进行判断,如果是中文,则先写入一个“%”,之后判断每个字节的值,对应的高四位和低四位转换成ASCII码,比如说0xD2 0xBD 这个GB2312编码汉字“医”,先进行UTF-8转换,转换成0xE5 0x8C 0xBB,这样的三个字节的数据,之后转换的时候变成“%”“E”“5”“%”“8”“C”“%”“B”“B”,这样就行了。 

#2


QTextCodec *utf8 = QTextCodec::codecForName("utf-8");
QByteArray encoded = utf8->fromUnicode(QString::fromUtf8("我们")).toPercentEncoding();
现在encoded里面装的就是以百分号编码的字符。(注意源码字符集的问题,我这里使用的是QString::fromUtf8)

#3


做过类似爬虫的事情。
楼主这样做的目的是什么?透露下呗

#4


Qt中文转换为utf8编码的url编码格式,挺好。。。。 Qt中文转换为utf8编码的url编码格式