请问如何用C语言实现汉字和Unicode编码的转换 求程序

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/26 08:36:39
请问如何用C语言实现汉字和Unicode编码的转换 求程序
xSokRQ*?@L돐 NA^zk^^9jڊDrk}ιG]\ys<]Ok4W5Ѭ n96~Q%A閾<7:de'%O8$%GLWӝ)R,)) ,<""D~OXD&4~~X!2=TJ%Uր@-jjZBs \ng;"5ۮS ;mVpRqF%E9KgohΆ<)fR? Tt4v * ;^.Yw9 Hr2M&Rɑ:0r#U:>[ąUy{?*j@Y,6E0V:Qo+Nh7e߽S0@u:xglFFpm2Cz5#qEh~J5$D"6Z046f]3L$ŠY R ۰uro~E@Oj &T陨̱gtε9jAф%28jP!~6AO

请问如何用C语言实现汉字和Unicode编码的转换 求程序
请问如何用C语言实现汉字和Unicode编码的转换 求程序

请问如何用C语言实现汉字和Unicode编码的转换 求程序
字转换:wctomb、mbtowc,wc 指 Wide charactor,mb 指 Multi-byte.
字符串转换:wcstombs、mbstowcs,wcs 和 mbs 的 s 指 string.
这 4 个函数是 C 标准函数库函数中的.如果只是在 Windows 平台下编程,可直接调用 Windows API 函数 WideCharToMultiByte 和 MultiByteToWideChar 实现.但是如果调用标准库函数的话,在 Linux 下也是有效的.调用标准库函数,首先必须包含 locale.h 并调用 setlocale(LC_ALL,"") 后才能正确转换.Windows 下的 Multi-byte 是 ANSI 编码的,Wide charactor 是 Unicode (UTF-16) 编码,而 Linux 下的 Multi-byte 是 UTF-8 编码的,Wide charactor 是 Unicode (UTF-32) 编码.
#include
#include
#include
int main(void)
{
char str[12];
wchar_t wstr[] = { 0x52B3,0x788C,0 };
setlocale(LC_ALL,"");
wcstombs(str,wstr,sizeof(str)/sizeof(char));
printf("%s",str);
return 0;
}