UTF_8与GB2312互转

#pragma once
#include "iconv.h"   
#pragma comment(lib,"libiconv.lib")  
#include <iostream> 
class UTF_8
{
private: 
iconv_t cd; 
public:


UTF_8(const char *from_charset,const char *to_charset)
{
cd = iconv_open(to_charset,from_charset); 
}
~UTF_8(void)
{
iconv_close(cd); 
}
// 转换输出 
int convert(char *inbuf,int inlen,char *outbuf,int outlen) { 
char **pin = &inbuf; 
char **pout = &outbuf; 


memset(outbuf,0,outlen); 
return iconv(cd,(const char **)pin,(size_t *)&inlen,pout,(size_t *)&outlen); 

};
/******************************************************************************
使用方法
char *in_utf8 = "姝e?ㄥ??瑁?"; 
char *in_gb2312 = "请输入"; 
char out[256]; 


// utf-8-->gb2312 
UTF_8 cc = UTF_8("utf-8","gb2312"); 
cc.convert(in_utf8,strlen(in_utf8),out,256); 


// gb2312-->utf-8 
UTF_8 cc2 = UTF_8("gb2312","utf-8"); 
cc2.convert(in_gb2312,strlen(in_gb2312),out,256); 

********************************************************************************/



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值