如果要脱离这些使用系统底层的API那么你就是用iconv函数。简介如下:
在shell中使用如下
iconv编程涉及到以下glibc库的调用:
在使用iconv转码的时候,首先用iconv_open获取转码句柄然后调用iconv转码,轉完了后调用iconv_close关闭句柄
参数cd是用iconv_open调用返回的转码句柄;
参数inbuf指向需要转码的缓冲区;
参数outbuf存放转码结果;
如果调用成功,iconv返回转换的字節数(不可逆转调用的字节数可逆转调用的字节数不包括在内)。否则返回-1并设置相应的errno。
iconv逐步扫描inbuf每转换一个字符,就增加inbuf减尐inbytesleft,并将结果存入outbuf结果字节数存入outbytesleft。遇到下列情况将停止扫描并返回:
对于iconv函数还有两种调用情况:
iconv命令的使用固然方便,可是如果轉换过程中如果遇到问题则会停止转换有时候我们希望跳过不能转换的字节序列继续转换。以下的一段程序能实现这种功能
可以用内存映像文件解决文件太大内存缓冲不够的情况。相对于iconv命令加-c选项,以忽略转换过程中可能引发的问题
发布了79 篇原创文章 · 获赞 8 · 访問量 30万+