许多像谷歌和维基百科这样的网站都用十六进制编码非英语字符,并用前导“%”符号。
我找了一个工具,我可以管道URL到它,当这样的%a a字符串满足时,将把这些符号转换回utf,以便我可以读取它们。
因为我找不到,所以我自己用C写的,我想和你分享,也许你会发现它很有用:
#include <stdio.h>
int main()
{
char c;
unsigned int i;
while (!feof(stdin))
{
if (0==fread(&c,1,1,stdin)) break;
if (c!='%') putchar(c);
else
{
if (scanf("%X",&i)==1) putchar(i);
else putchar('%');
}
}
return 0;
}
用法示例:
回声
“http://he.wikipedia.org/wiki/%d7%a2%d7%9e%d7%95%d7%93_u7%d7%a8%d7%90%d7%a9%d7%99”
|./转储十六进制
结果:
http://he.wikipedia.org/wiki/×¢×××_ר×ש×