从URL解码十六进制

从URL解码十六进制,url,unicode,hex,Url,Unicode,Hex,许多网站,如google和wikipedia,都用十六进制编码非英语字符,并在前面加上“%”符号。 我寻找了一个工具,我可以管道URL到它,当这样的%AA字符串满足,将这些符号翻译回utf,以便我可以阅读它们 因为我找不到,所以我自己用c写的,我想和你们分享,也许你们会发现它很有用: #include <stdio.h> int main() { char c; unsigned int i; while (!feof(stdin

许多网站,如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;
}
在VC++中:

string dec = URLDecoder::decode(url)
PHP:

爪哇:


等等。

根据您使用的语言和框架,这些实用程序是常见的:,,等等……您的问题提供了一个字符串,它是URL中不安全的字符转换为八位字符的一种特殊情况,格式为
“%xx”,其中“
x”是十六进制数字。@akiva_eshbal,严格地说,如果您想将十六进制八位字节转换为字符,并且每个八位字节都通过前面的
'%'
与非编码内容区分开来,那么您可以查看URL编码或其改编。@akiva_eshbal,但是字符串可以由任何内容组成,并且上面的任何示例都将解码任何
%xx“
其中的令牌。例如,
“uLdecoder::decode”(%D7%A2%D7%9E%D7%95%D7%93%D7%A8%D7%90%D7%A9%D7%99”)
string dec = URLDecoder::decode(url)
$d = urldecode($u)
String dec = URLDecoder.decode(url,"UTF-8");