2015-07-28 5 views
-2

Я столкнулся с довольно распространенной проблемой, но я не могу найти решение для этого. Библиотека tinyxml2 возвращает const char* с методом Attribute(const char*). В xml-файле, открытом в этой библиотеке, у меня есть атрибуты с unicode и без. Файл преобразован в UTF-8. Используя Linux, было бы неплохо увидеть решение для окон. Какие-либо предложения?C++. Преобразовать char * с символами unicode (UTF-8) в std :: wstring

+0

Я не уверен, что вы просите ... Вы спрашиваете, как преобразовать 'константный символ *' библиотека возвращается в 'станд :: wstring' ? –

+0

http://stackoverflow.com/questions/10737644/convert-const-char-to-wstring –

+0

Вы использовали функцию swprintf()? Взгляните сюда [link] (https://msdn.microsoft.com/en-us/library/ms235631.aspx) – QuestionAndAnswer

ответ

-2

Как это:

std::wstring utf8_decode(const std::string &str) 
{ 
    int size_needed = MultiByteToWideChar(CP_UTF8, 0, &str[0], (int)str.size(), NULL, 0); 
    std::wstring wstrTo(size_needed, 0); 
    MultiByteToWideChar(CP_UTF8, 0, &str[0], (int)str.size(), &wstrTo[0], size_needed); 
    return wstrTo; 
} 
+0

Что, что-то не так с моим кодом? –

+0

Я не тот, кто занижен, но действительно ли это [ваш код] (https://stackoverflow.com/a/10738141/2302862)? – Siguza

+0

@ Сигуза в значительной степени да, я собрал его из поисковых запросов (как обычно.) Я создал его, когда возился с GDI +, потому что он требует unicode. –