字符集转换(iconv的相关内容)

gb2312为简体中文,而utf-8是国际通用标准(包括世界上所有语言),gbk又是对gb2312的扩充。


iconv命令可以将一种已知的字符集文件转换成另一种已知的字符集文件 它的作用是在多种国际编码格式之间进行文本内码的转换。


作为编程接口的iconv包括3个函数:
  • iconv_open函数用于初始化用于转换的内部缓冲区,需要指明需要从何种编码方式转换到哪一种。

  • iconv函数进行实际的转换,需要给出两个间接缓冲区指针和剩余字节数指针。该函数需要更新所有相关信息,因此将不可改写的指针传递给iconv是错误的。

  • iconv_close函数释放iconv_open函数的缓冲区。


#include <iconv.h>
itn main()
{
    char * pIn = info;
    char * pOut = outbuf;
    memset(outbuf,0,12);
    iconv_t conv = iconv_open("GBK","UTF-8");
    iconv(conv, &pIn, &srclen, &pOut, &dstlen);      iconv_close(conv);
    cout << outbuf <<endl;
}

封装成函数

void LedManager::UtfToGb2312(char *info,char *outbuf,size_t srclen,size_t dstlen)
{

    char * pIn = info;
    char * pOut = outbuf;
    memset(outbuf,0,12);
    iconv_t conv = iconv_open("GBK","UTF-8");
    iconv(conv, &pIn, &srclen, &pOut, &dstlen);
    iconv_close(conv);
    cout << outbuf <<endl;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值