Outils gratuits pour développeurs

Encoder & décoder une URL.

Encodez du texte pour les URLs en pourcent et redécodez-le — en direct, compatible UTF-8, entièrement dans votre navigateur.

Conçu et hébergé dans l'Union européenne
Encodeur d'URL
Encodage-pourcent · RFC 3986
Fonctionne entièrement dans votre navigateur
Le résultat apparaît ici.
Tout s'exécute sur votre appareil — rien de ce que vous saisissez n'est transmis, stocké ou journalisé.

Pourquoi les URLs doivent être encodées

Une URL est de l'ASCII pur avec une structure stricte : ? démarre la requête, & sépare les paramètres, = affecte les valeurs. Chacun de ces caractères à l'intérieur d'une valeur — ou tout caractère non-ASCII — doit être encodé en pourcent sous forme de ses octets UTF-8 (ä%C3%A4), sinon l'URL change de sens sans prévenir.

Composant vs URL complète

L'erreur la plus courante est de se tromper de portée. Le mode composant (le encodeURIComponent de JavaScript) échappe aussi les caractères structurels — parfait pour les valeurs de requête, les segments de chemin et les champs de formulaire. Le mode URL complète (encodeURI) laisse :/?#&= intacts — utile uniquement pour nettoyer une URL complète. Encoder une URL complète en mode composant la détruit.

L'encodage d'URL dans votre code

JavaScript
component vs URI
// single query value
encodeURIComponent("a&b=c");  // "a%26b%3Dc"

// safer: let URLSearchParams do it
const p = new URLSearchParams({ q: "a&b" });
p.toString();  // "q=a%26b"
Python
urllib.parse
from urllib.parse import quote, unquote, urlencode

quote("a&b=c", safe="")   # "a%26b%3Dc"
unquote("%C3%A4")          # "ä"

urlencode({"q": "a&b"})   # "q=a%26b"

Questions fréquentes

Qu'est-ce que l'encodage d'URL (encodage-pourcent) ?
Les URLs ne peuvent contenir qu'un ensemble limité de caractères ASCII. Tout le reste — espaces, accents, emoji et caractères à sens particulier comme ? ou & — s'écrit sous forme d'une ou plusieurs séquences %XX de ses octets UTF-8. Un espace devient %20, ä devient %C3%A4.
Dois-je encoder l'URL entière ou seulement une valeur ?
Presque toujours seulement la valeur. Encoder une valeur de chaîne de requête (le mode composant ici, comme encodeURIComponent de JavaScript) échappe &, =, ? et / pour qu'ils ne cassent pas la structure de l'URL. Le mode URL complète (encodeURI) laisse ces caractères structurels intacts — à n'utiliser que pour nettoyer une URL complète qui a déjà sa structure.
Pourquoi un + signifie-t-il parfois un espace ?
Dans le format application/x-www-form-urlencoded — l'envoi de formulaire HTML classique — les espaces sont encodés en +. Dans toute autre partie d'une URL, un espace doit être %20 et un + littéral signifie plus. Lors du décodage de données de formulaire, traitez + comme un espace ; ce décodeur laisse + intact, car c'est le comportement correct de l'encodage-pourcent.
Qu'est-ce que le double encodage et pourquoi est-ce un problème ?
Encoder une valeur déjà encodée : %20 devient %2520, car le % lui-même est échappé. Le symptôme classique est l'apparition de séquences %25 dans les URLs. Encodez exactement une fois, au moment d'assembler l'URL — et décodez exactement une fois côté consommateur.
Quels caractères n'ont jamais besoin d'être encodés ?
L'ensemble non réservé défini par la RFC 3986 : les lettres A–Z et a–z, les chiffres 0–9 et les quatre symboles - _ . ~. Tout le reste est soit réservé (a un sens structurel), soit doit être encodé en pourcent.
Mes données sont-elles envoyées quand j'utilise cet outil ?
Non — l'encodage et le décodage s'exécutent entièrement dans votre navigateur. Rien de ce que vous saisissez n'est transmis, stocké ou journalisé, ce que vous pouvez vérifier dans l'onglet réseau de votre navigateur.

Des outils gratuits par une entreprise de logiciels européenne.

  • Fonctionne dans votre navigateur
  • Conçu & hébergé dans l'UE
  • Aucun compte requis