Qt基础开发之QString与QByteArray的区别有哪些(QByteArray,qstring,qt,编程语言)

时间:2024-05-05 21:49:22 作者 : 石家庄SEO 分类 : 编程语言
  • TAG :

    Qt%E5%9F%BA%E7%A1%80%E5%BC%80%E5%8F%91%E4%B9%8BQString%E4%B8%8EQByteArray%E7%9A%84%E5%8C%BA%E5%88%AB%E6%9C%89%E5%93%AA%E4%BA%9B

Qt的QString类提供了很方便的对字符串操作的接口,QString没有继承任何Qt基类。

%1, %2, %3作为占位符,将被后面的arg()函数中的内容依次替换,比如%1将被替换成1,%2将被替换成2.0,%3将被替换成"hello"。输出为:"1 2 hello"

QString

Qt的QByteArray类提供了很方便的对字节流操作的接口,QByteArray没有继承任何Qt基类。

例如:0x31一个字节会转换成"31"两个字节

输出:byte: "123456" byteHex: "313233343536"

例如:"31"会转换成0x31一个字节, 需要注意它是一个静态函数

输出: byte: "31323334" byteFromHex: "1234"

输出:str: 123456

QString是专门用来处理字符串的,除了能处理ASCII编码字符,还包括各国语言的编码,默认情况下QString会把所有数据当做utf-8编码来处理。QByteArray只是单纯用来处理数据的,除了能处理ASCII编码字符,其它复杂的编码不能处理,直接以字节流的方式来对待。

看下面一个例子:

输出结果:str: "小马哥" byte: "\xE5\xB0\x8F\xE9\xA9\xAC\xE5\x93\xA5",str保留编码格式,能输出中文,但是QByteArray只把"小马哥"当做普通的字节数据来处理,utf-8编码下,一个汉字占三个字节。

输出结果:byte1: "123abc???" byte2: "123abc\xE5\xB0\x8F\xE9\xA9\xAC\xE5\x93\xA5"

输出结果:byte: "123abc\xE5\xB0\x8F\xE9\xA9\xAC\xE5\x93\xA5" str: "123abc小马哥"

QString类型无法直接转换成char*, 需要先转换成QByteArray, 然后再转char*

本文:Qt基础开发之QString与QByteArray的区别有哪些的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:利用C语言怎么对英文进行统计下一篇:

6 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18