可能是重复问题:
如何在STL中进行UTF8到宽字符的转换
我知道如何使用MultiByteToWideChar将UTF8转换为std::wstring:
std::wstring utf8to16( const char* src )
{
std::vector<wchar_t> buffer;
buffer.resize(MultiByteToWideChar(CP_UTF8, 0, src, -1, 0, 0));
MultiByteToWideChar(CP_UTF8, 0, src, -1, &buffer[0], buffer.size());
return &buffer[0];
}
但它只适用于Windows,是否有一个跨平台的C++函数,使用stdio或iostream来完成相同的任务?
MultiByteToWideChar()
调用的错误。此外,您可以在函数体内直接使用std::wstring
,而不是在单独的std::vector
中分配内存,然后进行深层复制到std::wstring
中。 - Mr.C64