我有小问题我想将unicode转换为Multibyte有什么办法
答案 0 :(得分:7)
std::string NarrowString(const std::wstring& str, const char* localeName = "C")
{
std::string result;
result.resize(str.size());
std::locale loc(localeName);
std::use_facet<std::ctype<wchar_t> >(loc).narrow(
str.c_str(), str.c_str() + str.size(), '?', &*result.begin());
return result;
}
它应该使用当前的语言环境来转换unicode字符串。对于不属于代码页的字符“?”正在使用caracter。使用Visual C ++ 2005/2008进行测试。
答案 1 :(得分:5)
随手三个选项:
答案 2 :(得分:3)
wcstombs非常适合我:)
答案 3 :(得分:1)
在大多数情况下,WideCharToMultiByte()就足够了。
答案 4 :(得分:0)
有WideCharToMultiByte winapi功能。
答案 5 :(得分:0)