随便写了一个能用的,没怎么完善。
在某系情况下的ascii(16进制)转换utf8(16进制)的代码
UCS-4 range (hex.) UTF-8 octet sequence (binary)
0000 0080-0000 07FF 110xxxxx 10xxxxxx
void
a2u(
char
*
sr)

...
{
long int srNum;
char des[32]="o";
char *pdes = des;
char *temp = NULL;
int i = 0;
int all =strlen(sr) ;
for(i = 0; i<all; i++)

...{
switch(*sr)

...{
case '0': strcat(des,"0000");break;
case '1': strcat(des,"0001");break;
case '2': strcat(des,"0010");break;
case '3': strcat(des,"0011");break;
case '4': strcat(des,"0100");break;
case '5': strcat(des,"0101");break;
case '6': strcat(des,"0110");break;
case '7': strcat(des,"0111");break;
case '8': strcat(des,"1000");break;
case '9': strcat(des,"1001");break;
case 'a': strcat(des,"1010");break;
case 'b': strcat(des,"1011");break;
case 'c': strcat(des,"1100");break;
case 'd': strcat(des,"1101");break;
case 'e': strcat(des,"1110");break;
case 'f': strcat(des,"1111");break;

default:
printf("NULL ");break;
}
sr++;
}
printf("des1 [%s] ",des);
for(i = 0 ; i<5 ; i++)

...{
des[3+i] = des[5+i];
}
des[0] = '1';
des[1] = '1';
des[2] = '0';
des[8] = '1';
des[9] = '0';
printf("des2 [%s] ",des);
printf("%x ",strtol( des , &temp , 2 ) );
}
