代码之家  ›  专栏  ›  技术社区  ›  akiva

从URL解码十六进制

  •  0
  • akiva  · 技术社区  · 15 年前

    许多像谷歌和维基百科这样的网站都用十六进制编码非英语字符,并用前导“%”符号。 我找了一个工具,我可以管道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/עמוד_ראשי
    
    1 回复  |  直到 15 年前
        1
  •  1
  •   jball    15 年前

    string dec = URLDecoder::decode(url)
    

    $d = urldecode($u)
    

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

    推荐文章