ICONV字符编码转换库

字符编码的刚需场景里,ICONV库确实是个还不错的老朋友。

GNU 项目里的老牌编码转换工具,支持UTF-8GBKUnicode这些常见编码互转。跨平台、多语言字符数据的时候,蛮好用。

用法也挺简单,像在 C/C++里,你只需要调用iconv_openiconviconv_close三个函数就能搞定转换流程。输入输出缓冲区分配好,数据咔咔就能转。

比如要把 GBK 转 UTF-8,大致就这么写:

#include 
#include 

char* input = "GBK 字符串"; size_t input_len = strlen(input); char* output = malloc(2 * input_len); size_t output_len = 2 * input_len;

iconv_t cd = iconv_open("UTF-8", "GBK"); if (cd == (iconv_t)-1) { // 错误 }

size_t result = iconv(cd, &input, &input_len, &output, &output_len); if (result == (size_t)-1) { // 错误 }

iconv_close(cd);

除了 C 语言,PythonJavaPerl这些语言也有 ICONV 的绑定包,跨语言用起来也还算方便。命令行也支持,直接用iconv命令搞定文件编码转换,适合批量文本。

注意一点,转换时最好预估好输出缓冲区的大小,像 UTF-8 比 GBK 占字节多,不够用会出错。

如果你在搞国际化项目,或者老系统数据迁移,ICONV绝对值得一试。小巧、稳定、开箱即用,搞定乱码就靠它了。

rar 文件大小:537.37KB