многие сайты, такие как 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/עמוד_ראשי