1. ホーム
  2. c++

[解決済み] QStringをstd::stringに変換する方法は?

2022-01-31 12:31:40

質問

このようなことをしようとしています。

QString string;
// do things...
std::cout << string << std::endl;

が、コードがコンパイルされない。 qstringの内容をコンソールに出力するにはどうしたらよいでしょうか(デバッグ用など)。どのように変換すれば QString から std::string ?

解決方法は?

を変換する際に覚えておきたいことのひとつ。 QString から std::string というのは QString はUTF-16でエンコードされているのに対し std::string ... 任意のエンコーディングが可能です。

ということは、ベストはどちらかでしょう。

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();

コーデックを指定すると、提案(受理)された方法が動作する場合があります。

参照してください。 http://doc.qt.io/qt-5/qstring.html#toLatin1