linux下编码转换问题,C语言实现,使用iconv函数族

linux下编码转换问题,C语言实现,使用iconv函数族,第1张

1、iconv的含义是将一个抽象的符号的编码进行转换。

但是如果一个符号比如“个”,可能在BIG5的编码中不存在(繁体字中不同)

GBK包含的是简体字,BIG5包含的是繁体字,Unicode包含全部,

所以

GBK->Unicode,Big5-Unicode (总是OK)

Unicode->GBK (当里面仅包含英文及简体时OK)

Unicode->BIG5 (当里面仅包含英文及繁体时OK)

GBK->Big5 (基本上不行,除非某些字没有特别的简体字)

GBK->Big5是汉字的简繁转换,不是编码转换,简体字转繁体字还有一个问题,一个简体字可能是对应多个繁体字,这种很难转换正确。繁体字转换成简体字相对难度低。

2、#include <iconv.h>

size_t iconv(iconv_t cd,

char **inbuf, size_t *inbytesleft,

char **outbuf, size_t *outbytesleft)

函数原型, outbuf是一个 char **类型

在函数手册中:

The iconv() function converts one multibyte character at a time, and for each character conversion it increments *inbuf and decrements

*inbytesleft by the number of converted input bytes, it increments *outbuf and decrements *outbytesleft by the number of converted

output bytes

man命令显示出来的man手册都是英文的,没有中文的man手册,如果想要中文的标准C语言帮助,可以在网上下载pdf格式或者chm格式的帮助文档,在网上有很多的。pdf文档在现在大多数Linux发行版上都可以打开,chm文档可以在Linux上安装一个名为xchm的工具就可以浏览了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8685787.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-19
下一篇 2023-04-19

发表评论

登录后才能评论

评论列表(0条)

保存