如何解决 QString 转换成 string 时出现乱码问题
在 C++ Qt 开发中,我们通常需要将 QString 类型转换成 string 类型。然而,当字符串包含非 ASCII 字符时,转换成 string 后会出现乱码问题。这个问题的解决方法是使用 Unicode 编码来转换字符串。
具体实现代码如下:
QString str = “你好,世界!”;
QByteArray ba = str.toUtf8();
std::string str2 = ba.constData();
首先,我们将 QString 类型的字符串 str 转换成 QByteArray 类型的字节数组 ba。这里使用了 toUtf8() 方法,因为 UTF-8 编码是 Unicode 的一种实现方式,可以支持多种语言字符。接着,我们将字节数组 ba 转换成 const char* 类型的指针,并将其赋值给 string 类型的变量 str2。
这样就可以避免出现乱码问题了。