1 #include <iconv.h> 2 3 4 //代码转换:从一种编码转为另一种编码 5 6 static int CodeConvert(char *from_charset,char *to_charset,char *inbuf,long inlen,char *outbuf,long outlen) 7 8 { 9 10 iconv_t cd; 11 12 int rc; 13 14 //char **pin = &inbuf; 15 16 char *pin = inbuf; 17 18 //char **pout = &outbuf; 19 20 char *pout = outbuf; 21 22 23 24 cd = iconv_open(to_charset,from_charset); 25 26 if (cd==0) 27 28 return -1; 29 30 31 32 memset(outbuf,0,outlen); 33 34 printf("^^^^^^^^^^^^^^^^^^^^\n\n\n"); 35 36 if (iconv(cd, (char **)&pin, (size_t*)&inlen, &pout, (size_t*)&outlen)==-1) 37 38 return -1; 39 40 printf("######################\n\n\n"); 41 42 iconv_close(cd); 43 44 return 0; 45 46 } 47 48 //UNICODE码转为GB2312码 49 50 static int u2g(char *inbuf,int inlen,char *outbuf,int outlen) 51 52 { 53 54 return CodeConvert( "utf-8", "gb18030",inbuf,inlen,outbuf,outlen); 55 56 } 57 58 //GB2312码转为UNICODE码 59 60 static int g2u(char *inbuf,size_t inlen,char *outbuf,size_t outlen) 61 62 { 63 64 return CodeConvert( "gb18030", "utf-8",inbuf,inlen,outbuf,outlen); 65 66 }
Linux 环境c++ 编码转换
猜你喜欢
转载自www.cnblogs.com/mingyue605/p/9021294.html
今日推荐
周排行