URL Encoding expliqué : Encodage pourcent, UTF-8 et caractères spéciaux

5 min de lecture

L'encodage URL (encodage pourcent) convertit les caractères spéciaux dans un format transmissible sur internet. Les espaces deviennent %20, les esperluettes %26, et les caractères non ASCII sont encodés en séquences d'octets UTF-8.

Pourquoi les URLs ont besoin d'encodage

Les URLs ne peuvent contenir qu'un ensemble limité de caractères (RFC 3986) : lettres, chiffres et quelques caractères spéciaux (-._~). Tout le reste doit être encodé en pourcent.

Encodages courants

CaractèreEncodé
Espace%20 (ou + dans les query strings)
&%26
=%3D
?%3F
#%23
/%2F
@%40

Unicode dans les URLs

Les caractères non ASCII (comme café) sont d'abord encodés en UTF-8, puis chaque octet est encodé en pourcent : caf%C3%A9.

En JavaScript

encodeURIComponent("hello world & café")
// "hello%20world%20%26%20caf%C3%A9"

decodeURIComponent("hello%20world")
// "hello world"

Générez des URLs propres

Évitez les problèmes d'encodage en utilisant des slugs propres. Notre générateur de slugs d'URL crée des slugs sûrs automatiquement.