2010-11-24 18 views
0

De nombreux sites tels que google et wikipedia encodent des caractères non-anglais en hexadécimal avec un signe '%' en tête. J'ai cherché un outil dans lequel je pourrais injecter des URLs et, quand ces chaînes% AA sont rencontrées, traduiront ces signes en utf pour que je puisse les lire.Décodage des hexadécimaux à partir des URL

que je ne pouvais pas trouver un, je l'ai écrit moi-même dans c et je voudrais partager avec vous, peut-être vous trouverez utile:

#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; 
} 

Exemple d'utilisation:

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

résultats:

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

En fonction de la langue et le cadre que vous utilisez, ces utilitaires sont communs: [Java] (http://publib.boulder.ibm.com/infocenter/ledoc/v6r1/index. jsp? topic =/com.ibm.rcp.jcl.desktop.javadoc/doc/java/net/URLDecoder.html), [Net] (http://msdn.microsoft.com/fr-fr/library/6196h3wt. aspx), [PHP] (http://php.net/manual/fr/function.urldecode.php), etc ... – jball

Répondre

1

Dans VC++:

string dec = URLDecoder::decode(url) 

PHP:

$d = urldecode($u) 

Java:

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

etc ...

+0

tous ces URL de décodage, pas hexa. – akiva

+0

Votre question présente une chaîne qui est un cas spécifique de [URL Encoding] (http://www.rfc-editor.org/rfc/rfc1738.txt), c'est-à-dire, la conversion de caractères qui ne sont pas sûrs pour l'utilisation dans une URL dans un octet sous la forme de ""% xx "'où" 'x'" est un chiffre hexadécimal. – jball

+0

@akiva_eshbal, Strictement parlant, si vous voulez convertir des octets hexadécimaux en caractères et que chaque octet est différencié du contenu non-codé par un ''%' 'précédent, vous regardez un encodage d'URL ou une adaptation de celui-ci. – jball