读书人

中英文混合字符串 与 十六进制字符串

发布时间: 2012-04-24 14:15:38 作者: rapoo

中英文混合字符串 与 十六进制字符串 互转
谁知道如何将 中英文混合字符串 与 十六进制字符串 互转,或者提供下已经实现了的函数代码参考,纠结好多天了。谢谢

[解决办法]
那也太浪费空间了,base64之后传输与存储即可。
[解决办法]

C/C++ code
#include <stdio.h>#include <string.h>#define MAXLEN 100char s[MAXLEN+1]="123ab汉字";char t[2*MAXLEN+1];int i,L;void main() {    printf("s=[%s]\n",s);    //Bin2Hex    L=strlen(s);    if (L>=MAXLEN) L=MAXLEN;    for (i=0;i<L;i++) {        sprintf(t+i*2,"%02X",(unsigned char)s[i]);    }    printf("t=[%s]\n",t);    //Hex2Bin    L=strlen(t)/2;    if (L>=MAXLEN) L=MAXLEN;    for (i=0;i<L;i++) {        sscanf(t+i*2,"%2X",&s[i]);    }    s[L]=0;    printf("s=[%s]\n",s);}//s=[123ab汉字]//t=[3132336162BABAD7D6]//s=[123ab汉字]
[解决办法]
quoted-printable
这个更方便大量英文少量汉字的。

base64解码也方便啊。。

否则

char str[]="飞洒附件";
char *p=str;
while(*p)
{
char buf[4];
sprintf(buf,"%2X",*p++);
printf("%.2s",buf);
}

读书人网 >C++

热点推荐