Мой вопрос такой же, как этот вопрос без ответа?
Как читать XML-значения Unicode с помощью rapidxml
Но содержимое моего XML закодировано в UTF-8. Я новичок в MS Visual Studio, C++.
Мой вопрос: как мы читаем строку UTF-8 в строку типа wchar_t?
Скажем, я определяю такую структуру,
typedef struct{
vector<int> stroke_labels;
int stroke_count;
wchar_t* uni_val;
}WORD_DETAIL;
и когда я читаю значение из xml, я использую..
WORD_DETAIL this_detail;
this_detail.uni_val=curr_word->first_node("labelDesc")->first_node("annotationDetails")->first_node("codeSequence")->value();
Но сохраняемые строки utf-8 не такие, как ожидалось. Это испорченные персонажи.
Мои вопросы:
- Как я могу использовать rapidxml для чтения значений Unicode/Utf-8?
- Существуют ли более простые парсеры xml, которые делают то же самое?
- Любой пример кода будет глубоко оценен.
В разделе 2.1 здесь упоминается
«Обратите внимание, что RapidXml не выполняет декодирование — строки, возвращаемые функциями name() и value(), будут содержать текст, закодированный с использованием той же кодировки, что и исходный файл.»
Если кодировка моего XML — UTF-8, как лучше всего получить возвращаемое значение функции ->value()?
Заранее спасибо.