QString 带中文时如何转成std::string
时间: 2023-11-22 20:53:42 浏览: 54
可以使用以下方法将 QString 转换为 std::string:
```c++
#include <QString>
#include <string>
std::string qstr2str(const QString& qstr)
{
QByteArray bytes = qstr.toUtf8();
return std::string(bytes.constData(), bytes.length());
}
```
其中,toUtf8() 方法将 QString 转换为 QByteArray,再使用 QByteArray 的 constData() 方法获取其指向的字符数组,最后使用 std::string 构造函数将其转换为 std::string。这里使用 UTF-8 编码,如果 QString 使用其他编码,则需要相应地修改。
使用方法如下:
```c++
QString qstr = "你好";
std::string str = qstr2str(qstr);
```
这样就将 QString 转换为了 std::string。
相关问题
Qstring转成std::string
要将QString转换为std::string,可以使用toStdString()函数。这个函数是QString类的成员函数,它将QString对象转换为std::string对象。下面是一个示例代码:
```cpp
QString qstr = "Hello, World!";
std::string str = qstr.toStdString();
```
在上面的代码中,我们将QString对象qstr转换为std::string对象str。现在,str就包含了与qstr相同的字符串内容。
需要注意的是,QString和std::string之间的转换可能会导致编码问题。QString使用的是Unicode编码,而std::string通常使用的是ASCII编码或UTF-8编码。因此,在进行转换时,需要确保编码方式的兼容性。
QString转成std::string qT c++
在QT C++中,可以使用以下方法将QString转换为std::string:
```cpp
QString qs_original("ab中国cd");
std::string str = qs_original.toUtf8().constData();
```
这里,我们首先将QString转换为UTF-8编码的QByteArray,然后使用constData()函数将其转换为const char*类型,最后将其赋值给std::string类型的变量。
另外,如果你想将std::string转换为QString,可以使用以下方法:
```cpp
std::string str_original("ab中国cd");
QString qs = QString::fromUtf8(QByteArray::fromRawData(str_original.c_str(), str_original.size()));
```
这里,我们首先将std::string转换为QByteArray,然后使用fromRawData()函数将其转换为QByteArray类型,最后使用fromUtf8()函数将其转换为QString类型。