日期:2014-05-16  浏览次数:20701 次

请教一个字符编码转换问题
本人新手,想设计一个函数,读取一个GB2312的文件,最后输出一个unicode编码的文件,这个函数怎么写啊?请教各位大侠!3x!!!!!!!

------解决方案--------------------
iconv_open( "UNICODE ", "GB2312 ");
iconv........
iconv_close.........
------解决方案--------------------
楼上的用iconv(通用字符转换)是一个好办法:-)。
作为补充:
你也可以用glibc库的简单字符转化函数,
有两套,mbstowcs这类叫做 "不可重入字符转化 ",非多线程/进程安全(实际上是ISO C committee的失误)。
mbsrtowcs这类叫做“可重入字符转化”,建议使用这个。

方法如下:
char input[SIZE]= "字符 ";
wchar_t output[SIZE2];
mbstate_t stat;
setlocale(LC_CTYPE, "zh_CN.gb18030 "/*或zh_CN.gbk或zh_CN.gb2312,看你的系统有什么*/); /*重要:glibc依赖于这个LC_CTYPE环境变量决定multi bytes string输入串的字符编码*/
mbsrtowcs(output,&input,SIZE2,&stat);