декодирование шестнадцатеричных из URL - PullRequest
0 голосов
/ 24 ноября 2010

многие сайты, такие как 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;
}

пример использования:

# эхо «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 Ответ

1 голос
/ 24 ноября 2010

В ВК ++:

string dec = URLDecoder::decode(url)

PHP:

$d = urldecode($u)

Java:

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

и т.д ...

...