[英]How can I convert from ANSI character (char) to Unicode character (wchar_t) and vice versa?
如何将ANSI字符(char)转换为Unicode字符(wchar_t),反之亦然?
是否有用于此目的的跨平台源代码?
是的,在<cstdlib>
您具有mbstowcs()
和wcstombs()
。
之前,我已经发布了一些有关如何使用它的代码 ,这可能会有所帮助。 确保运行函数两次,一次获取长度,一次运行实际转换。 (这里对功能的含义进行了一些讨论 。)我可能会更喜欢使用std::vector<char>
或std::vector<wchar_t>
来代替手动char数组。
请注意, wchar_t
与Unicode无关。 如果需要Unicode,则需要使用单独的库(例如iconv()
)将wchar_t
进一步转换为Unicode,并且不要将wchar_t
用作Unicode代码点的数据类型。 相反,请在旧系统上使用uint32_t
或在现代系统上使用char32_t
。
显然,这可行,我不知道它是否将一直有效,还是偶然的,但我认为值得展示:
const char* c = "hey yo";
wstring s(c, c + 6);
wcout << s << endl;
wcin.get();
版画
hey yo
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.