如何将阿拉伯文ascii文本转换为十六进制?
这里的代码与拉丁字符一起使用如何将阿拉伯文ascii文本转换为十六进制?,c,hex,C,Hex,这里的代码与拉丁字符一起使用 #include <stdio.h> void charToHex(char *a) { char word[17], outword[33];//17:16+1, 33:16*2+1 int i, len; strcpy(word, a); len = strlen(word); if(word[len-1]=='\n') word[--len] = '\0'; for(i = 0;
#include <stdio.h>
void charToHex(char *a)
{
char word[17], outword[33];//17:16+1, 33:16*2+1
int i, len;
strcpy(word, a);
len = strlen(word);
if(word[len-1]=='\n')
word[--len] = '\0';
for(i = 0; i<len; i++){
sprintf(outword+i*2, "%02X", word[i]);
}
printf("%s\n", outword);
}
int main(void)
{
char ch[10]="a";
charToHex(ch);
return 0;
}
#包括
无效charToHex(字符*a)
{
字符词[17],外部词[33];//17:16+1,33:16*2+1
int i,len;
strcpy(单词,a);
len=strlen(单词);
如果(字[len-1]='\n')
字[--len]='\0';
对于(i=0;iD9=1101 1001。它将成为一个-ve 1字节数。尝试使用无符号数组,它将起作用。sprintf(outford+i*2,“%02X”,(无符号字符)字[i])
“ق”不是ASCII字符集的成员。如果您说编码应该是D982,那么您使用的是带有UTF-8编码的Unicode字符集。