如何转换QString到std :: string? [英] How to convert QString to std::string?
本文介绍了如何转换QString到std :: string?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想这样做:
QString string;
// do things...
std::cout << string << std::endl;
但代码不编译。
如何将qstring的内容输出到控制台(例如为了调试或其他原因)?如何将 QString
转换为 std :: string
?
but the code doesn't compile.
How to output the content of qstring into the console (e.g. for debugging purposes or other reasons)? How to convert QString
to std::string
?
推荐答案
将 QString
转换为 std :: string
是 QString
是UTF-16编码, std :: string
...可能有任何编码。
One of the things you should remember when converting QString
to std::string
is the fact that QString
is UTF-16 encoded while std::string
... May have any encodings.
所以最好的是:
QString qs;
// Either this if you use UTF-8 anywhere
std::string utf8_text = qs.toUtf8().constData();
// or this if you're on Windows :-)
std::string current_locale_text = qs.toLocal8Bit().constData();
如果指定编解码器,建议(接受)方法可能有效。
The suggested (accepted) method may work if you specify codec.
请参阅: http://doc.qt.io/ qt-5 / qstring.html#toAscii
这篇关于如何转换QString到std :: string?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文