我正在使用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();
}
});
答案 0 :(得分:10)
根据您要编译的平台,utility::string_t
类型将为std::wstring
(在Windows上)或std::string
(在Linux / OSX上)的typedef' d。
要获得经典的utf-8 std::string
,无论平台如何,请查看utility::conversions::to_utf8string
。
答案 1 :(得分:3)
如果您从github上看到C ++ REST SDK的文档,您会发现typedef
C++ Rest SDK - utility Namespace Reference
typedef std::string string_t;
所以不需要转换它。两者都是相同的类型。
答案 2 :(得分:2)
在Windows Phone 8.1上有以下定义:
string_t toStringT = U("sample");
std::string fromStringT(toStringT.begin(), toStringT.end());
我用过这个:
std::string fromStringT(conversions::to_utf8string(toStringT));
或:
struct A {
A* next;
char* txt;
...};
struct B {
A* next;
int length;
...};