QT中QString转string
时间: 2024-02-06 22:43:47 浏览: 29
在QT中,可以使用`toStdString()`函数将QString类型转换为string类型。示例如下:
```c++
QString qstr = "Hello, World!";
std::string str = qstr.toStdString();
```
需要注意的是,QString和string的编码方式不同,因此在进行转换时可能会出现编码问题。如果需要处理编码问题,可以使用QString的`toUtf8()`函数将其转换为UTF-8编码的QByteArray类型,再使用QByteArray的`toStdString()`函数转换为string类型,示例如下:
```c++
QString qstr = "你好,世界!";
QByteArray bytes = qstr.toUtf8();
std::string str = bytes.toStdString();
```
相关问题
qt中Qstring转换string,中文乱码
可以使用QString的toStdString()函数将QString转换为std::string,如下所示:
```
QString qs = "你好";
std::string str = qs.toStdString();
```
如果在转换过程中出现中文乱码,可能是编码不匹配的问题。您可以尝试更改编码或使用QString的toUtf8()函数将QString转换为QByteArray,然后再将QByteArray转换为std::string,以避免出现乱码问题,如下所示:
```
QString qs = "你好";
QByteArray utf8Bytes = qs.toUtf8();
std::string str = utf8Bytes.constData();
```
QT qstring转string
可以使用 QString(const QByteArray &ba) 构造函数将 QByteArray 转换为 QString。例如:
```
QByteArray ba = ...;
QString str = QString(ba);
```
或者使用 QByteArray 的 toStdString() 函数,再使用 QString 构造函数:
```
QByteArray ba = ...;
QString str = QString::fromStdString(ba.toStdString());
```
也可以使用QTextCodec类转换
```
QByteArray ba = ...;
QTextCodec *codec = QTextCodec::codecForName("UTF-8");
QString str = codec->toUnicode(ba);
```