C中编码转换函数可移植问题

博客探讨了在C语言中处理中文编码转换时可能遇到的问题,特别是使用iconv函数进行编码转换时的注意事项。文章介绍了iconv_open、iconv和iconv_close等函数的使用,并指出在64位系统中,size_t和int类型的转换可能导致段错误,强调了类型匹配的重要性。
摘要由CSDN通过智能技术生成

博客搬家,原地址:https://langzi989.github.io/2017/07/17/C中编码问题/

编码介绍

在代码中我们通常不可避免的出现一些中文,这个时候我们就要考虑到中文的编码格式,如果不注意可能会导致乱码或者信息失真等问题。我们常用的中文编码有GBK,gb2312,Unicode等等。具体详细的介绍看下面几篇文章:

C语言编码转换

在C语言中,如果需要讲编码进行转换,可以使用iconv系列函数。
头文件以及常用函数:

#include <iconv.h>
typedef void* iconv_t;

extern iconv_t iconv_open(const char* to_code, const char* from_code);

extern size_t iconv(iconv_t cd, char** restrict inbuf, size_t* in_left_buf, char** restrict outbuf, size_t* out_left_buf);

extern int iconv_close(iconv_t cd);

iconv_open

函数说明

此函数说明将要进行哪两种编码的转换,并返回一个转化句柄。

参数说明
  • tocode:目标编码
  • fromcode : 原编码

iconv

extern size_t iconv(iconv_t cd, char** restrict inbuf, size_t* in_left_buf, char** restrict outbuf, size_t* out_left_buf
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值