当前位置: 技术问答>linux和unix
请教一个字符编码转换问题
来源: 互联网 发布时间:2016-01-13
本文导语: 本人新手,想设计一个函数,读取一个GB2312的文件,最后输出一个unicode编码的文件,这个函数怎么写啊?请教各位大侠!3x!!!!!!! | iconv_open("UNICODE","GB2312"); iconv........ iconv_close......... | ...
本人新手,想设计一个函数,读取一个GB2312的文件,最后输出一个unicode编码的文件,这个函数怎么写啊?请教各位大侠!3x!!!!!!!
|
iconv_open("UNICODE","GB2312");
iconv........
iconv_close.........
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);
作为补充:
你也可以用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);