QString转成char *有乱码
时间: 2023-08-05 08:05:20 浏览: 151
C++中string转换为char*类型返回后乱码问题解决
5星 · 资源好评率100%
QString 和 char * 的编码方式不同,所以在转换时可能会出现乱码。为了避免这种情况,可以使用 QString::toLocal8Bit() 方法将 QString 转换为 QByteArray,再使用 QByteArray::data() 方法获取 char * 指针。例如:
```
QString str = "你好";
QByteArray ba = str.toLocal8Bit();
char *c_str = ba.data();
```
这样就可以得到一个 char * 类型的指针,可以避免乱码的问题。需要注意的是,如果 QString 中包含了非 ASCII 字符,转换后的 char * 指针可能包含多字节字符,需要在使用时进行处理。
阅读全文