从char*到wchar_t*的转换

时间:2021-12-11 22:38:33
很多情况下,尤其是在国际化的编程中,我们需要进行从char到wchar_t,或者从char*到wchar_t*的格式转换。下面说一下方法。

对于单个字符,可以通过ios::widen()函数来完成char到wchar_t的格式转换。或者通过ios::narrow来完成反向的转换。注意实际上widen是将char转换成了charT类型,也就是本地语言(locale)中一个字符,如果本地语言采用宽字符时,才会转换成wchar_t。


对于数组或者指针型,可以通过

size_t mbstowcs( wchar_t * wcstr, const char * mbstr, size_t max );

这个函数(在cstdlib中)来完成,其中size_t是转换到目标的最大的字符串长度。