在Qt中,QString和QByteArray之间的转换可以通过以下方法实现:

QString -> QByteArray

QString str = 'Hello World';
QByteArray byteArr = str.toUtf8(); // 或者使用 str.toLocal8Bit(),根据实际情况选择

QByteArray -> QString

QByteArray byteArr = 'Hello World';
QString str = QString::fromUtf8(byteArr); // 或者使用 QString::fromLocal8Bit(byteArr),根据实际情况选择

在上述方法中,toUtf8()和fromUtf8()方法将字符串编码为UTF-8格式。如果需要将字符串编码为其他格式,可以使用toLocal8Bit()和fromLocal8Bit()方法。

在转换后,QByteArray中的数据编码为Unicode,因为Qt中所有的字符串都是采用Unicode编码的。如果需要将Unicode编码转换为其他编码格式,可以使用QTextCodec类。例如,将Unicode编码转换为GBK编码:

QByteArray byteArr = '你好世界';
QTextCodec *codec = QTextCodec::codecForName('GBK');
QByteArray gbkByteArr = codec->fromUnicode(byteArr);
Qt QString 和 QByteArray 转换详解:Unicode编码及其他格式转换

原文地址: https://www.cveoy.top/t/topic/ngBP 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录