C ++。将带有unicode(UTF-8)符号的char *转换为std :: wstring

时间:2015-07-28 18:49:07

标签: c++ unicode utf-8 tinyxml2

我遇到了很常见的问题,但我找不到解决方法。 tinyxml2库以const char*方法返回Attribute(const char*)。在使用该库打开的xml文件中,我有unicode和without的属性。文件转换为UTF-8。使用Linux,但是看到Windows的解决方案也很好。有什么建议吗?

1 个答案:

答案 0 :(得分:-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;
}