Я столкнулся с довольно распространенной проблемой, но я не могу найти решение для этого. Библиотека tinyxml2 возвращает const char*
с методом Attribute(const char*)
. В xml-файле, открытом в этой библиотеке, у меня есть атрибуты с unicode и без. Файл преобразован в UTF-8. Используя Linux, было бы неплохо увидеть решение для окон. Какие-либо предложения?C++. Преобразовать char * с символами unicode (UTF-8) в std :: wstring
ответ
Как это:
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;
}
Что, что-то не так с моим кодом? –
Я не тот, кто занижен, но действительно ли это [ваш код] (https://stackoverflow.com/a/10738141/2302862)? – Siguza
@ Сигуза в значительной степени да, я собрал его из поисковых запросов (как обычно.) Я создал его, когда возился с GDI +, потому что он требует unicode. –
Я не уверен, что вы просите ... Вы спрашиваете, как преобразовать 'константный символ *' библиотека возвращается в 'станд :: wstring' ? –
http://stackoverflow.com/questions/10737644/convert-const-char-to-wstring –
Вы использовали функцию swprintf()? Взгляните сюда [link] (https://msdn.microsoft.com/en-us/library/ms235631.aspx) – QuestionAndAnswer