中英文混合字符串 与 十六进制字符串 互转
谁知道如何将 中英文混合字符串 与 十六进制字符串 互转,或者提供下已经实现了的函数代码参考,纠结好多天了。谢谢
[解决办法]
那也太浪费空间了,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);
}