Encodeur / Décodeur d’URL
NouveauEncodez ou décodez du texte en pourcentage et analysez les chaînes de requête, le tout dans votre navigateur.
Special characters reference
| Character | Encoded (%XX) | Notes |
|---|---|---|
| space | %20 | Also encoded as + in HTML form query strings |
| & | %26 | Query param separator — encode in values |
| = | %3D | Key-value separator in query strings |
| ? | %3F | Marks the start of a query string |
| # | %23 | Fragment identifier |
| / | %2F | Path separator |
| : | %3A | Protocol / port separator |
| @ | %40 | Username delimiter in URLs |
| + | %2B | Literal plus sign (+ in query string = space) |
| % | %25 | Percent itself — encode to avoid ambiguity |
| € | %E2%82%AC | UTF-8 multi-byte (3 bytes) |
| © | %C2%A9 | UTF-8 multi-byte (2 bytes) |
Per-language code snippets
Copy-ready snippets for JavaScript, Python, C#, PowerShell, Java and Go.
// Encode a single query value (recommended)
const encoded = encodeURIComponent('hello world & co.');
// → 'hello%20world%20%26%20co.'
// Decode
const decoded = decodeURIComponent('hello%20world%20%26%20co.');
// → 'hello world & co.'
// Encode a full URL (leaves : / ? & # intact)
const safeUrl = encodeURI('https://example.com/search?q=hello world');
// → 'https://example.com/search?q=hello%20world' from urllib.parse import quote, unquote, urlencode
# Encode a single value (%20 for spaces)
encoded = quote('hello world & co.')
# → 'hello%20world%20%26%20co.'
# Decode
decoded = unquote('hello%20world%20%26%20co.')
# → 'hello world & co.'
# Encode a query dict (uses + for spaces — form encoding)
qs = urlencode({'q': 'hello world', 'page': '2'})
# → 'q=hello+world&page=2'
# quote_plus encodes spaces as + (match HTML form encoding)
plus = quote_plus('hello world')
# → 'hello+world' // Encode a single value (spaces → %20)
string encoded = Uri.EscapeDataString("hello world & co.");
// → "hello%20world%20%26%20co."
// Decode
string decoded = Uri.UnescapeDataString("hello%20world%20%26%20co.");
// → "hello world & co."
// Older System.Web API (spaces → +, form encoding):
// HttpUtility.UrlEncode("hello world") → "hello+world" # .NET method — works in PS 5+ and PowerShell Core
$encoded = [Uri]::EscapeDataString('hello world & co.')
# → 'hello%20world%20%26%20co.'
$decoded = [Uri]::UnescapeDataString('hello%20world%20%26%20co.')
# → 'hello world & co.'
# Alternate via System.Web (Desktop PS only):
Add-Type -AssemblyName System.Web
$enc2 = [System.Web.HttpUtility]::UrlEncode('hello world')
# → 'hello+world' import java.net.URLEncoder;
import java.net.URLDecoder;
import java.nio.charset.StandardCharsets;
// Encode (URLEncoder uses + for spaces — form encoding)
String encoded = URLEncoder.encode("hello world & co.", StandardCharsets.UTF_8);
// → "hello+world+%26+co."
// Decode
String decoded = URLDecoder.decode("hello+world+%26+co.", StandardCharsets.UTF_8);
// → "hello world & co." import "net/url"
// QueryEscape: spaces become +
encoded := url.QueryEscape("hello world & co.")
// → "hello+world+%26+co."
decoded, err := url.QueryUnescape("hello+world+%26+co.")
// → "hello world & co.", nil
// PathEscape: spaces become %20
pathSafe := url.PathEscape("hello world & co.")
// → "hello%20world%20&%20co." Runs entirely in your browser. Nothing is uploaded.
Encodeur et décodeur d'URL gratuit en ligne
Cet encodeur et décodeur d'URL convertit du texte en format encodé en pourcentage — ou inverse le processus — directement dans votre navigateur. Collez votre texte, choisissez Encoder ou Décoder, sélectionnez les règles Composant ou URI complet, et le résultat se met à jour en temps réel. Rien n'est envoyé ; chaque opération s'exécute entièrement dans votre navigateur en utilisant les mêmes fonctions JavaScript intégrées que votre code utilise.
L'encodage en pourcentage est inévitable dans le développement web. Les espaces, esperluettes, signes égal et caractères non ASCII doivent être échappés avant de pouvoir exister en toute sécurité dans une URL. Que vous construisiez une requête d'API, déboguiez un lien de suivi ou lisiez un journal de serveur, cet outil gère tous les cas particuliers — y compris les caractères UTF-8 multi-octets, les séquences malformées et l'ambiguïté de l'espace + vs %20.
encodeURIComponent vs encodeURI — quelle règle utiliser ?
encodeURIComponent est le bon choix pour les valeurs de requête individuelles, les segments de chemin ou toute chaîne que vous insérez dans une URL. Il encode presque tous les caractères spéciaux — y compris ?, &, =, /, # et : — afin que la valeur ne puisse pas casser la structure de l'URL. Exemple : 'hello world & page=2' devient 'hello%20world%20%26%20page%3D2'.
encodeURI est conçu pour encoder une URL complète sans la casser. Il laisse les caractères structurels intacts (: / ? # &) pour que l'URL continue de fonctionner tout en encodant quand même les espaces et les caractères non ASCII. En cas de doute, préférez les règles Composant pour tout ce que vous insérez comme valeur — c'est la valeur par défaut sûre dans presque tous les frameworks web.
Espaces en %20 vs + — la distinction de l'encodage de formulaires
Il existe deux façons valides d'encoder un espace dans une URL. Dans les chemins d'URL (la partie avant le ?), la RFC 3986 exige %20. Dans les chaînes de requête de formulaires HTML, l'ancien format application/x-www-form-urlencoded encode les espaces comme + par souci de compacité historique — et c'est encore ce que les navigateurs envoient lorsque vous soumettez un formulaire via GET.
Les deux signifient 'espace', mais uniquement dans leur propre contexte. Un + dans un chemin d'URL est un signe plus littéral ; un + dans une chaîne de requête est un espace. Un signe plus littéral dans une valeur de requête doit être encodé en %2B ou il sera mal interprété. Le bouton + comme espace du mode décodage gère les entrées encodées en formulaire en remplaçant + par un espace avant d'exécuter decodeURIComponent.
Comparaison avec CyberChef et autres outils d'encodage d'URL
CyberChef (du GCHQ) est puissant mais conçu autour d'un concept de pipeline de 'recettes' — vous enchaînez plusieurs opérations. Pour un encodage ou décodage d'URL pur, vous devez quand même chercher l'opération, la faire glisser dans la recette, puis traiter l'entrée. Il est excellent pour les transformations complexes ; il est plus lent que nécessaire pour un encodage/décodage rapide.
D'autres outils en ligne comme urldecoder.org sont simples mais affichent des publicités, nécessitent des rechargements complets de page pour chaque opération et n'offrent pas d'extraits de code par langage. Cet outil met à jour le résultat instantanément à chaque frappe, gère les règles Composant et URI complet, inclut une table de référence des caractères encodés courants et affiche du code prêt à copier en JavaScript, Python, C#, PowerShell, Java et Go.
Référence rapide des caractères spéciaux
Les caractères les plus fréquemment encodés en développement web : espace → %20 (ou + dans les chaînes de requête), & → %26, = → %3D, ? → %3F, # → %23, / → %2F, : → %3A, @ → %40, + → %2B, % → %25. Les caractères UTF-8 multi-octets se développent en plusieurs séquences : € → %E2%82%AC, é → %C3%A9.
Les caractères qui ne sont jamais encodés constituent le jeu non réservé : lettres A–Z et a–z, chiffres 0–9, et les quatre symboles - _ . ~. Tout le reste — y compris chaque caractère non ASCII — doit être encodé en pourcentage dans une URL conforme aux normes.
Encodage d'URL en JavaScript, Python, C#, PowerShell et Java
Chaque langage principal dispose d'une fonction intégrée pour cela. En JavaScript / Node.js : encodeURIComponent(str) et decodeURIComponent(str) — sans imports nécessaires. En Python : urllib.parse.quote(str) et unquote(str) ; urlencode(dict) pour une chaîne de requête complète. En C# : Uri.EscapeDataString(str) et Uri.UnescapeDataString(str) du namespace System. En PowerShell : [Uri]::EscapeDataString(str), disponible dans PS 5+ et PowerShell Core. En Java : URLEncoder.encode(str, StandardCharsets.UTF_8).
Le panneau d'extraits par langage inclut du code prêt à copier en JavaScript, Python, C#, PowerShell, Java et Go pour que vous puissiez ajouter le bon appel à votre projet immédiatement — avec des notes sur le comportement de l'espace + vs %20 pour la bibliothèque standard de chaque langage.
100% privé — fonctionne aussi hors ligne
Chaque opération d'encodage et de décodage utilise uniquement les fonctions intégrées de votre navigateur : encodeURIComponent, decodeURIComponent, encodeURI et decodeURI. Aucun texte n'est jamais envoyé à un serveur, stocké ou journalisé — pas même les noms de domaine dans les URL que vous collez. Une fois la page chargée, mettez l'appareil hors ligne et il continue de fonctionner parfaitement. Mettez-la en favori et utilisez-la chaque fois que vous avez besoin d'encoder, de décoder ou d'inspecter une URL.
Frequently asked questions
Qu'est-ce que l'encodage d'URL ?
L'encodage d'URL (aussi appelé encodage en pourcentage) convertit les caractères non sûrs dans une URL en un signe % suivi de deux chiffres hexadécimaux. Par exemple, un espace devient %20, une esperluette devient %26 et un dièse devient %23. Il garantit que chaque URL est valide dans n'importe quel navigateur, en-tête HTTP ou serveur, quel que soit le jeu de caractères.
Que signifie %20 dans l'encodage d'URL ?
%20 est la représentation encodée en pourcentage d'un caractère espace. Le 20 est la valeur hexadécimale d'ASCII 32 (l'espace). Ainsi, l'URL 'hello%20world' se décode en 'hello world'. Dans les chaînes de requête de formulaires HTML, vous verrez parfois + à la place de %20 pour les espaces — les deux signifient la même chose dans les chaînes de requête mais pas dans les chemins d'URL.
Quelle est la différence entre encodeURI et encodeURIComponent ?
encodeURIComponent est destiné aux valeurs de requête individuelles ou aux segments de chemin — il encode presque tout, y compris : / ? # & = pour que la valeur ne puisse pas casser la structure de l'URL. encodeURI est destiné à une URL complète — il laisse les caractères structurels comme : / ? & # intacts pour que l'URL continue de fonctionner. En règle générale, utilisez toujours encodeURIComponent pour les valeurs individuelles que vous insérez dans un lien.
Comment encoder une URL en JavaScript ?
Utilisez encodeURIComponent() pour les valeurs individuelles : encodeURIComponent('hello world & co.') retourne 'hello%20world%20%26%20co.'. Pour inverser, utilisez decodeURIComponent(). Pour une URL complète, utilisez encodeURI() / decodeURI() — ils ignorent les caractères structurels. Les deux sont intégrés dans chaque navigateur et Node.js sans imports nécessaires.
Pourquoi un espace est-il %20 parfois et + d'autres fois ?
Dans les chemins d'URL (avant le ?), les espaces doivent être %20 selon la RFC 3986. Dans les chaînes de requête, l'ancien format application/x-www-form-urlencoded utilisé par les formulaires HTML encode les espaces comme + pour la concision historique. Les deux signifient 'espace' mais uniquement dans leur propre contexte — un + littéral dans une valeur de requête doit être encodé en %2B ou il sera mal interprété comme un espace.
Est-il sûr d'encoder/décoder en ligne ?
Oui — cet outil est 100% local. Chaque opération s'exécute dans votre navigateur en utilisant les fonctions JavaScript intégrées. Votre texte n'est jamais envoyé à aucun serveur, stocké ou journalisé. Vous pouvez même passer hors ligne après avoir chargé la page et il continue de fonctionner. C'est particulièrement important lors de l'encodage de clés d'API, d'identifiants ou de jetons.
Quels caractères doivent toujours être encodés dans une URL ?
Tout caractère en dehors du jeu non réservé (A–Z, a–z, 0–9, tiret, underscore, point, tilde) doit être encodé en pourcentage. Les plus courants : espace → %20, & → %26, = → %3D, ? → %3F, # → %23, / → %2F, : → %3A, @ → %40, + → %2B, % → %25. Les caractères non ASCII comme les accents et les emojis s'encodent en plusieurs séquences %XX via UTF-8.
Related tools
Voir tous les outilsConstructeur d’expression Cron
Expliquez une planification Cron en langage clair et prévisualisez ses prochaines exécutions.
Minifieur HTML
Compressez le HTML en supprimant les commentaires et en réduisant les espaces.
Minifieur CSS
Réduisez le CSS en supprimant les commentaires et les espaces inutiles.
Échapper / Déséchapper du JSON
Échappez du texte brut en une chaîne compatible JSON et déséchappez-la.
Codes de statut HTTP
Référence consultable des codes de statut HTTP avec des explications en langage clair.
Aide-mémoire Regex
Référence consultable des éléments et drapeaux des expressions régulières.