十六进制形式可以更直观的看到数据的真实样子,有时候对于调试很有帮助。

不同的编码方式下QString的十六进制不同,如:GBK用两个字节来表示一个中文字符,

而utf-8用三或四个字节来表示一个中文字符。

 

QString可以借助QByteArray来实现十六进制形式输出,将QString转换为QByteArray打印。

例:字符串 "中文english"

以上3个以to开头的函数返回值都是QByteArray,分别获得是本地、utf-8和latin1编码形式的QByteArray。

输出结果:

可以看到中文字符是十六进制的形式(前两种编码),英文字符被直接输出来了。很显然直接输出QByteArray

是不行的。

 

QByteArray提供了toHex函数将QByteArray转换为十六进制形式,返回值类型也是QByteArray。

例:

输出结果:

成功转为十六进制,但是每个字节都粘在一起了不好看,toHex还有一个重载版本,传入一个char作为分隔符。

例:

输出结果:

 

---> 文章来源于我的个人博客:fearlazy
---> 编程是一件怎么也学不会的事情,但是如果能享受学习的过程也是挺好的。