QByteArray转字符串
时间: 2023-07-05 21:28:49 浏览: 79
QByteArray 可以通过 QString 类的构造函数或 fromUtf8() 函数将其转换为字符串。具体的代码如下所示:
```c++
QByteArray byteArray = "Hello, World!";
QString str = QString::fromUtf8(byteArray);
```
或者
```c++
QByteArray byteArray = "Hello, World!";
QString str = QString(byteArray);
```
其中,fromUtf8() 函数将 QByteArray 中的数据解码为 Unicode 字符,然后将其转换为 QString 对象。第二种方式中,QString 的构造函数会自动根据 QByteArray 中的数据类型选择合适的解码方式。
需要注意的是,如果 QByteArray 中的数据不是 UTF-8 编码的,将其直接转换为 QString 可能会出现乱码或者编码错误的情况。此时需要使用 QByteArray 类的 toXXX() 函数将其转换为正确的编码格式,然后再转换为 QString 对象。例如:
```c++
QByteArray byteArray = "你好,世界!";
QString str = QString::fromUtf8(byteArray); // 错误的转换方式,可能会出现乱码
QString str2 = QString::fromLocal8Bit(byteArray); // 正确的转换方式,将 QByteArray 中的数据当做本地编码进行解码
```
在上面的代码中,如果使用 fromUtf8() 函数将 byteArray 直接转换为 QString,可能会出现乱码。正确的方式是使用 fromLocal8Bit() 函数将数据当做本地编码进行解码。
阅读全文