【QT】QByteArray、QString、char* 的相互转化(文本形式、二进制、十六进制)

该文详细介绍了QByteArray如何与QString以及char*相互转化,包括文本形式和非文本(二进制、十六进制)形式的转换方法,涉及toHex(),toBase64(),fromHex(),fromBase64()等函数的使用。

1. QByteArray 与 QString 的相互转化

1.1 QByteArray文本形式的转化

1.1.1 QByteArray 转 QString

QByteArray byte = "ccc";
QString str = QString(byte);  //直接使用QString构造

1.1.2 QString 转 QByteArray

QString str = "aaa";
QByteArray byte = str.toLatin1();
QByteArray byte = toLocal8Bit();
QByteArray byte = toUtf8();
  1. toLatin1:ISO-8859-1编码是单字节编码,向下兼容ASCII,其编码范围是0x00-0xFF
  2. toLocal8Bit:gb18030字符集兼容了gbk字符集,以两个字节表示一个文字。windows系统可能使用的就是这两种的一种
  3. toUtf8:utf8字符集以2个或以上的字节表示一个汉字。实际上具体的数值和unicode有很大的相关

1.2 QByteArray非文本形式的转化(二进制、十六进制)

QString只有在数据是文本的时候才能构造,对于非文本形式(二进制或十六进制)的数据不能直接构造

1.2.1 QByteArray 转 QString

新建一个记事本命名为1.txt,并在里面随便写入数据,使用ZIP进行压缩为1.zip,zip压缩文件是16进制的数据格式。

QFile file("C:\\Users\\WL\\Desktop\\1.zip");  //压缩文件的路径,路径的\要使用\\进行转义,或者使用/
//QFile file("C:/Users/WL/Desktop/1.zip")
if(!file.open(QIODevice::ReadOnly)){
   
   
	qDebug() << "打开文件失败";
	return;  //只读打开文件失败则返回
}
QByteArray byte = file.readAll
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值