6

casablanca C++ Rest ライブラリを使用して HTTP リクエストを作成しています。

問題は、これにより utility::string_t 文字列が出力され、これを従来の std::string に変換する方法がまったく見つからないことです。何か案は?

client.request(methods::GET).then([](http_response response)
{
  if(response.status_code() == status_codes::OK)
  {
    string_t s = response.extract_string().get();
  }
});
4

3 に答える 3

11

コンパイルするプラットフォームに応じて、型は(Windows の場合) または(Linux/OSX の場合) のutility::string_tいずれかに typedef されます。std::wstringstd::string

std::stringプラットフォームに関係なく従来の utf-8 を取得するには、 をご覧くださいutility::conversions::to_utf8string

参考資料

于 2016-02-02T08:26:06.547 に答える
2

github から C++ REST SDK のドキュメントを見ると、typedef

C++ Rest SDK - ユーティリティ名前空間リファレンス

typedef std::string     string_t;

したがって、変換する必要はありません。どちらも同じタイプです。

于 2015-07-07T13:35:17.583 に答える
2

Windows Phone 8.1 では、次の定義があります。

typedef std::wstring     string_t;

私はこれを使用しました:

string_t toStringT = U("sample");
std::string fromStringT(toStringT.begin(), toStringT.end());

また:

std::string fromStringT(conversions::to_utf8string(toStringT));
于 2016-03-03T14:18:04.917 に答える