Encodage d'URL

(ou : 'Que sont ces codes "%20" dans les URLs?')

Comment encoder des URLs pour qu'elles soient comprises de tous ? Vous avez peut-être déjà remarqué des "%20" dans vos URLs. Ce code correspond à un encodage uniforme supporté par tous les serveurs Web. Cet article va vous détailler comment cela marche.

Convertisseur d'URL encodées

Le formulaire suivant vous permet de convertir une URL de "non unifiée" en une URL "unifiée". L'état initial du formulaire est considéré comme "non unifiée" . En outre, pour permettre la conversion des URLs actuelles, ce petit convertisseur n'encode par les caractères de syntaxe URL (les caractères ';', '/', '?', ':', '@', '=', '#' et '&') ... si vous avez besoin de convertir ces charactères, lisez la table "Caractères réservés" ci-dessous pour trouver la valeur appropriée.
NOTE:
Ce cenvertisseur utilise les méthodes String.charCodeAt et String.fromCharCode, qui sont seulement disponible en Javascript version 1.2 or plus, ainsi, cela ne focntionne pas avec Opera 3.x et avant, Netscape 3 et avant, et IE 3 et avant.

No
Encoding
URL-Safe
Encoding
Particularité de Navigateurs
  • L'Internet Explorer est notoirement détendu dans ses conditions pour coder les espaces dans URLs. Ceci tend à contribuer au sloppiness d'auteur pour écrire URLs. Maintenez dans l'esprit qui Netscape et opéra sont beaucoup plus stricts sur ce point, et les espaces DOIVENT être codés si le URL doit être considéré correct.

Pourquoi les caractères ont besoin d'être encodés ?

Les caractères de contrôles ASCII
     Pourquoi: ces caractères ne sont pas affichables.
Caractères: Contient les caractères 00-1F hex ou 0-31 dec et 7F ou 127 dec de la table ISO-8859-1 (ISO-Latin).
Les caractères non ASCII
     Pourquoi: Ils sont par définision non légaux dans les URLs.
Caractères: Contient la seconde moitiée de la table ISO-Latin ( 80-FF hex ou 128-255 decimal.)
"Caractèrs réservés"
     pourquoi: Les URLs utilisent des caractères spéciaux pour définir leur syntaxe. Quand ces caractères ne sont pas utilisés dans ce but, ils ont besoin d'être encodés.
Caractères:
Caractère Code
(Hex)
Code
(Dec)
 Le dollar "$"
 Le et commercial "&"
 Le plus "+"
 La virgule ","
 Le slash "/"
 Deux points ":"
Point-virgule ";"
L'égual "="
 Point d'intérogation "?"
 L'arobase "@"
24
26
2B
2C
2F
3A
3B
3D
3F
40
36
38
43
44
47
58
59
61
63
64
"Caractères évités"
     Pourquoi : Quelques caractères présentent la possibilité d'être mal compris dans URLs pour différentes raisons. Ces caractères devraient toujours être codés également.
Caractères:
Caractères Code
(Hex)
Code
(Dec)
Pourquoi encoder?
Espace 20 32 Une séquence d'espaces peut être perdue dans certains cas (Et particulièrement plusieurs espaces)
Les quotes
Symbole "<"
Symbole ">"
22
3C
3E
34
60
62
Ces caractères sont souvent utilisés pour délimiter des URL en texte plein.
Caractère "#" 23 35 C'est utilisé dans une URL pour indiquer un identifiant de fragment commence (bookmarks/ancres en HTML).
Caractère "%" 25 37 Il est utilisé comme caractère d'achappement, alors il doit ête lui-même encodé.
Divers caractères:
   Accolade "{"
   Accolade "}"
   Le pipe "|"
   Le backslash "\"
   Le chapeau "^"
   Le tilde "~"
   Le crochet "["
   le crochet "]"
   L'accent grave "`"

7B
7D
7C
5C
5E
7E
5B
5D
60

123
125
124
92
94
126
91
93
96
Quelques systhèmes peuvent modifier ces caractères.

Comment sont traduits les caractères des URL encodées ?


L'encodage des caractères d'une URL consiste à utiliser le caractère "%", suivi par une représentation sur deux hexadécimales (case-non sensitive) du ISO-Latin code du caractère.
Exemple
  • Espace = code décimale 32 dans la table ISO-Latin .
  • 32 décimale = 20 en héxadecimal
  • La représentation URL encodée sera "%20"