2016-02-26 4 views
1

Я студент и разрабатываю ПК-клиент с cpp. Я не знаю, как решить, с каким quickjson с кодировкой Unicode. Я всегда получаю грязный код. Я прохожий о cpp, как я могу получить правильный результат? Я буду очень признателен!Как получить wstring на китайском языке из quickjson :: Document?

Просто покажите пример:

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

Покажите, что вы пробовали до сих пор (код). – Blacktempel

+0

Опубликовать код, который вы пробовали раньше .. –

+0

конвертировать 'std :: string' в' std :: wstring'. Это не относится к json-библиотекам. –

ответ

0
#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); 
} 

Convert wstring to string encoded in UTF-8 Спасибо!

Смежные вопросы