Linux 环境c++ 编码转换
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 }
我已经与基督同钉十字架。现在活着的,不再是我,乃是基督在我里面活着。
并且我如今在肉身活着,是因信神的儿子而活,他是爱我,为我舍己。
我不废掉神的恩。义若是借着律法得的,基督就是徒然死了。