Iconv用法篇1
头文件"inconv.h"。iconv命令可以将一种已知的字符集文件转换成另一种已知的字符集文件。
它的作用是在多种国际编码格式之间进行文本内码的转换。
作为编程接口的iconv包括3个函数:
iconv_open函数用于初始化用于转换的内部缓冲区,需要指明需要从何种编码方式转换到哪一种。
iconv函数进行实际的转换,需要给出两个间接缓冲区指针和剩余字节数指针。该函数需要更新所有相关信息,因此将不可改写的指针传递给iconv是错误的。
iconv_close函数释放iconv_open函数的缓冲区。
指令:
#iconv-fGB2312-tUTF-8gb1.txt>gb2.txt将gb1里的编码从GB2312转化成UTF-8并重定向到gb2.txt
除了iconv命令,我们在linux系统下的manpage的第三节还可以看到一组iconv函数。它们分别是
iconv_ticonv_open(constchar*tocode,constchar*fromcode);
size_ticonv(iconv_tcd,char**inbuf,size_t*inbytesleft,char**outbuf,size_t*outbytesleft);
inticonv_close(iconv_tcd);
iconv_open函数用来打开一个编码转换的流,iconv函数的作用是实际进行转换,iconv_close函数的作用就是关闭这个流。实际用法参见下面的例子,下面是一个将UTF-8码转换成GBK码的例子,我们假设已经有了一个uft8编码的输入缓冲区inbuf以及这个缓冲区的长度inlen。
iconv_tcd=iconv_open("GBK","UTF-8");
char*outbuf=(char*)malloc(inlen*4);
bzero(outbiuf,inlen*4);
char*in=inbuf;
char*out=outbuf;
size_toutlen=inlen*4;
iconv(cd,&in,(size_t*)&inlen,&out,&outlen);
outlen=strlen(outbuf);
printf("%s\n",outbuf);
free(outbuf);
iconv_close(cd);
非常值得注意的地方是:iconv函数会修改参数in和参数out指针所指向的地方,也就是说,在调用iconv函数之前,我们的in和inbuf指针以及out和outbuf指针指向的是同一块内存区域,但是调用之后out指针所指向的地方就不是outbuf了,同理in指针。所以要
char*in=inbuf;
char*out=outbuf;
另存一下,使用或者释放内存的时候也要使用原先的那个指针outbuf和inbuf。
windows怎么支持'iconv'篇2
头文件"iconv.h"。iconv命令可以将一种已知的字符集文件转换成另一种已知的字符集文件。
它的作用是在多种国际编码格式之间进行文本内码的转换。
linux下的函数原型
size_ticonv(iconv_tcd,char**inbuf,size_t*inbytesleft,char**outbuf,size_t*outbytesleft);
iconv是一个计算机程序以及一套应用程序编程接口的名称。
作为应用程序的iconv采用命令行界面,允许将某种特定编码的文件转换为另一种编码。
iconv基于GPL公开源代码,是GNU项目的一部分。在各种UNIX操作系统下均可使用,而在Windows系统,需要特殊的环境如cygwin或者GnuWin32等软件平台下方可使用。现在在SourceForge上也有运行于Windows系统的,需要同时安装gettext程序。
目前版本为2.3.26,支持的内码包括:Unicode相关编码,如UTF-8、UTF-16等等,各国采用的ANSI编码,其中包括GB2312、BIG5等中文编码方式。
输入/输出格式规范:
-f,--from-code=NAME始文本编码-t,--to-code=NAME输出编码
信息:
-l,--list列举所有已知的字符集
-c从输出中忽略无效的字符-o,--output=FILE输出文件-s,----verbose打印进度信息-?,--help给出该系统求助列表--usage给出简要的用法信息-V,--version打印程序版本号示例:
列出支持的字符编码
[[email protected]~]#iconv-..(aliases).所有已知字符集
如何利用iconv命令进行编码转换呢篇3
用法:iconv有如下选项可用:输入/输出格式规范:-f,--from-code名称原始文本编码-t,--to-code名称输出编码信息:-l,--list列举所有已知的字符集输出控制:-c从输出中忽略无效的字符-o,--outputFILE输出文件-s,--silent关闭警告--verbose打印进度信息-?,--help给出该系统求助列表--usage给出简要的用法信息-V,--version打印程序版本号例子:iconv-futf-8-tgb2312aaa.txtbbb.txt这个命令读取aaa.txt文件,从utf-8编码转换为gb2312编码,其输出定向到bbb.txt文件。
windows下如何用iconv.h篇4
头文件"iconv.h"。iconv命令可以将一种已知的字符集文件转换成另一种已知的字符集文件。
它的作用是在多种国际编码格式之间进行文本内码的转换。
linux下的函数原型
size_ticonv(iconv_tcd,char**inbuf,size_t*inbytesleft,char**outbuf,size_t*outbytesleft);
iconv是一个计算机程序以及一套应用程序编程接口的名称。
作为应用程序的iconv采用命令行界面,允许将某种特定编码的文件转换为另一种编码。
iconv基于GPL公开源代码,是GNU项目的一部分。在各种UNIX操作系统下均可使用,而在Windows系统,需要特殊的环境如cygwin或者GnuWin32等软件平台下方可使用。现在在SourceForge上也有运行于Windows系统的,需要同时安装gettext程序。
目前版本为2.3.26,支持的内码包括:Unicode相关编码,如UTF-8、UTF-16等等,各国采用的ANSI编码,其中包括GB2312、BIG5等中文编码方式。
输入/输出格式规范:
-f,--from-code=NAME始文本编码-t,--to-code=NAME输出编码
信息:
-l,--list列举所有已知的字符集
-c从输出中忽略无效的字符-o,--output=FILE输出文件-s,----verbose打印进度信息-?,--help给出该系统求助列表--usage给出简要的用法信息-V,--version打印程序版本号示例:
列出支持的字符编码
[[email protected]~]#iconv-..(aliases).所有已知字符集