Référence8 min de lecture

Table complète des caractères encodés en URL (ASCII + Unicode)

Table de référence complète des caractères encodés en URL. Elle couvre tous les caractères ASCII imprimables (32-126), les caractères Unicode courants et leurs équivalents en encodage pourcent tels que définis par la RFC 3986.

Caractères de contrôle et caractères spéciaux ASCII

Les caractères ASCII compris dans la plage 0-31 ainsi que le caractère 127 sont des caractères de contrôle. Ils ne sont pas imprimables et doivent toujours être encodés en pourcent dans les URL. Les caractères de contrôle les plus fréquemment rencontrés dans un contexte d'URL sont l'espace (ASCII 32), la tabulation horizontale (ASCII 9) et les caractères de saut de ligne (ASCII 10 et 13).

Selon la RFC 3986, tout octet qui n'est pas un caractère non réservé, un caractère réservé utilisé à sa fin réservée, ou un triplet encodé en pourcent doit être encodé en pourcent. En pratique, cela signifie que la plupart des caractères non alphanumériques doivent être encodés dans les composants d'une URI.

Caractère Code ASCII Encodage URL Description
(tab) 9 %09 Tabulation horizontale
(LF) 10 %0A Saut de ligne (Line Feed)
(CR) 13 %0D Retour chariot (Carriage Return)
(espace) 32 %20 Espace

Caractères ASCII imprimables

Vous trouverez ci-dessous une référence complète de tous les caractères ASCII imprimables (codes 32-126) et de leurs formes encodées en URL. Les caractères marqués comme « non réservés » dans la RFC 3986 ne nécessitent aucun encodage. Les caractères réservés doivent être encodés lorsqu'ils sont utilisés en dehors de leur fin réservée.

Caractère ASCII Hex Encodage URL Type
(espace) 32 20 %20 Spécial
! 33 21 %21 Réservé
" 34 22 %22 Non sûr
# 35 23 %23 Réservé
$ 36 24 %24 Réservé
% 37 25 %25 Spécial
& 38 26 %26 Réservé
' 39 27 %27 Réservé
( 40 28 %28 Réservé
) 41 29 %29 Réservé
* 42 2A %2A Réservé
+ 43 2B %2B Réservé
, 44 2C %2C Réservé
- 45 2D %2D Non réservé
. 46 2E %2E Non réservé
/ 47 2F %2F Réservé
0-9 48-57 30-39 Non requis Non réservé
: 58 3A %3A Réservé
; 59 3B %3B Réservé
< 60 3C %3C Non sûr
= 61 3D %3D Réservé
> 62 3E %3E Non sûr
? 63 3F %3F Réservé
@ 64 40 %40 Réservé
A-Z 65-90 41-5A Non requis Non réservé
[ 91 5B %5B Réservé
\ 92 5C %5C Non sûr
] 93 5D %5D Réservé
^ 94 5E %5E Non sûr
_ 95 5F %5F Non réservé
` 96 60 %60 Non sûr
a-z 97-122 61-7A Non requis Non réservé
{ 123 7B %7B Non sûr
| 124 7C %7C Non sûr
} 125 7D %7D Non sûr
~ 126 7E %7E Non réservé

Encodages Unicode courants

Les caractères Unicode sont d'abord convertis en leur séquence d'octets UTF-8, puis chaque octet est encodé individuellement en pourcent. Les caractères multi-octets produisent plusieurs triplets encodés en pourcent.

Caractère Description Octets UTF-8 Encodage URL
a tréma Lettre minuscule latine A tréma C3 A4 %C3%A4
n tilde Lettre minuscule latine N tilde C3 B1 %C3%B1
e accent aigu Lettre minuscule latine E accent aigu C3 A9 %C3%A9
u tréma Lettre minuscule latine U tréma C3 BC %C3%BC
Symbole euro Symbole euro E2 82 AC %E2%82%AC
Symbole livre Symbole livre sterling C2 A3 %C2%A3
Symbole yen Symbole yen C2 A5 %C2%A5
Idéogramme CJK zhong Idéogramme unifié CJK (milieu) E4 B8 AD %E4%B8%AD
Ya cyrillique Lettre majuscule cyrillique Ya D0 AF %D0%AF
Ba arabe Lettre arabe Ba D8 A8 %D8%A8

Comment les caractères multi-octets sont encodés

UTF-8 utilise un schéma d'encodage à longueur variable. Les caractères de la plage ASCII (0-127) utilisent un seul octet. Les caractères en dehors de cette plage utilisent de deux à quatre octets. Lors de l'encodage en pourcent, chaque octet de la représentation UTF-8 devient un triplet %XX distinct.

Caractères sur deux octets (U+0080 à U+07FF) : ils incluent la plupart des caractères latins étendus, grecs, cyrilliques et arabes. Par exemple, la lettre allemande s dur (U+00DF) s'encode en octets UTF-8 C3 9F, ce qui donne %C3%9F.

Caractères sur trois octets (U+0800 à U+FFFF) : ils incluent les caractères CJK, la plupart des symboles et le plan multilingue de base (Basic Multilingual Plane). Par exemple, le caractère hiragana japonais (U+3042) s'encode en octets UTF-8 E3 81 82, ce qui donne %E3%81%82.

Caractères sur quatre octets (U+10000 à U+10FFFF) : ils incluent les emojis et les caractères supplémentaires. Par exemple, l'emoji visage souriant (U+1F600) s'encode en octets UTF-8 F0 9F 98 80, ce qui donne %F0%9F%98%80.

// Démonstration en JavaScript de l'encodage multi-octets
console.log(encodeURIComponent('u with umlaut'));
// Deux octets : "%C3%BC"

console.log(encodeURIComponent('CJK char'));
// Trois octets : "%E4%B8%AD"

console.log(encodeURIComponent('emoji'));
// Quatre octets : "%F0%9F%98%80"

// Vous pouvez vérifier en décodant
console.log(decodeURIComponent('%C3%BC'));  // u tréma
console.log(decodeURIComponent('%E4%B8%AD')); // caractère CJK

Articles connexes

Essayez nos outils gratuits