如何转换QString到std :: string? [英] How to convert QString to std::string?

查看:187
本文介绍了如何转换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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆