我是学生,用cpp开发PC-Client。我不知道如何使用编码Unicode来处理哪个rapidjson。我总是得到一个凌乱的代码。我是关于cpp的jackeroo,我怎样才能得到正确的结果?我会非常感激!
只是举个例子:
class Test {
// I have got the string of json
// eg: { "name" : "小明" }
public : void test(const std::string& data) {
rapidjson::Document json;
json.Parse<0>(data.c_str());
// there are a method GetString() , return a string
// The name value are another Chinese characters(I guess which because of its encoding).
// I want to get a wstring which value is "小明"(Not a messy code). How can i do ?
std::string name = json["name"].GetString();
}
};
// I had used this method
// But still got a messy code
str::UnicodeToAnsi();
答案 0 :(得分:2)
#include <codecvt>
#include <string>
// convert UTF-8 string to wstring
std::wstring utf8_to_wstring (const std::string& str)
{
std::wstring_convert<std::codecvt_utf8<wchar_t>> myconv;
return myconv.from_bytes(str);
}
// convert wstring to UTF-8 string
std::string wstring_to_utf8 (const std::wstring& str)
{
std::wstring_convert<std::codecvt_utf8<wchar_t>> myconv;
return myconv.to_bytes(str);
}