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();
- toLatin1:ISO-8859-1编码是单字节编码,向下兼容ASCII,其编码范围是0x00-0xFF
- toLocal8Bit:gb18030字符集兼容了gbk字符集,以两个字节表示一个文字。windows系统可能使用的就是这两种的一种
- 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

该文详细介绍了QByteArray如何与QString以及char*相互转化,包括文本形式和非文本(二进制、十六进制)形式的转换方法,涉及toHex(),toBase64(),fromHex(),fromBase64()等函数的使用。
&spm=1001.2101.3001.5002&articleId=129615310&d=1&t=3&u=612a3f479c3d4138bfe5b6e38d740c8b)
8078

被折叠的 条评论
为什么被折叠?



