从URL解码十六进制

时间:2010-11-24 20:17:29

标签: url unicode hex

许多网站(如google和wikipedia)都以十六进制编码非英文字符,并带有前导'%'符号。 我找了一个工具,我可以将URL管道进入它,当满足这样的%AA字符串时,会将这些符号转换回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;
}

用法示例:

  

#echo   “http://he.wikipedia.org/wiki/%D7%A2%D7%9E%D7%95%D7%93_%D7%A8%D7%90%D7%A9%D7%99”   | ./dumpHex

结果:

http://he.wikipedia.org/wiki/עמוד_ראשי

1 个答案:

答案 0 :(得分:1)

在VC ++中:

string dec = URLDecoder::decode(url)

PHP:

$d = urldecode($u)

爪哇:

String dec = URLDecoder.decode(url,"UTF-8");

等...