如何从ANSI字符(char)转换为Unicode字符(wchar_t),反之亦然?

Ami*_*yan 2 c++ wchar-t char

如何从ANSI字符(char)转换为Unicode字符(wchar_t),反之亦然?

是否有用于此目的的跨平台源代码?

Ker*_* SB 6

是的,<cstdlib>你有mbstowcs()wcstombs().

我之前发布了一些关于如何使用它的代码,也许这很有帮助.确保您运行该功能两次,一次获得长度,一次执行实际转换.(这里有一些关于函数意义的讨论.)而不是手工字符数组,我可能更喜欢一个std::vector<char>或者std::vector<wchar_t>,想到它.

请注意,wchar_t与Unicode无关.如果需要Unicode,则需要wchar_t使用单独的库(如iconv())进一步转换为Unicode ,并且不要将其wchar_t用作Unicode代码点的数据类型.相反,uint32_t在遗留系统或char32_t现代系统上使用.