一般地,可以用如下代码将QString转为std::string:
QString qsMyName = QString::fromLocal8Bit("我是小明");
std::string strMyName = qsMyName.toStdString(); // 此处有乱码
上面代码对于英文是没有问题的,但对于中文,则乱码。正确的做法是像下面那样:
QString qsMyName = QString::fromLocal8Bit("我是小明");
std::string strMyName = qsMyName.toLocal8Bit().constData();
在处理QString到std::string的转换时,直接使用toStdString()方法可能会导致中文乱码。正确的方法是先使用toLocal8Bit().constData()来确保中文能正确转换。此方法适用于含有中文字符的字符串转换。
5485

被折叠的 条评论
为什么被折叠?



