Encodeur, décodeur et éditeur de paramètres URL
Encodez une valeur de paramètre, lisez du texte encodé en pourcentage ou modifiez les paramètres d’une URL. Choisissez le format adapté à votre tâche, puis copiez ou téléchargez le résultat.
Chargement de l'outil…
Composants URL et valeurs de formulaire
Utilisez Encoder ou Décoder pour un nom ou une valeur de paramètre. Encoder une URL entière de cette façon échappe aussi ses séparateurs : cela convient lorsque l’URL devient elle-même une valeur dans une autre URL. Choisissez Modifier les paramètres pour conserver la structure de l’adresse.
| Entrée | Composant URL | Valeur de formulaire |
|---|---|---|
hello world | hello%20world | hello+world |
a+b | a%2Bb | a%2Bb |
a&b=c | a%26b%3Dc | a%26b%3Dc |
café | caf%C3%A9 | caf%C3%A9 |
~ | ~ | %7E |
Le format composant suit la fonction JavaScript encodeURIComponent : les lettres, les chiffres et - _ . ! ~ * ' ( ) restent lisibles. Les valeurs de formulaire suivent les règles application/x-www-form-urlencoded : les lettres, les chiffres et * - . _ restent lisibles, et les espaces deviennent +. Un signe plus littéral devient %2B dans les deux formats.
Au décodage, le format composant conserve les + ; le format formulaire les transforme en espaces. Chaque action décode une seule fois : %252F devient %2F, pas /. Les échappements incorrects et les séquences d’octets UTF-8 invalides provoquent une erreur plutôt qu’un résultat partiel. L’outil traite du texte UTF-8, pas des données binaires ni d’anciens encodages de caractères.
Modifier les paramètres sans perdre les noms répétés
Choisissez URL HTTP ou HTTPS complète pour une adresse entière, ou Paramètres seuls pour une chaîne comme tag=css&tag=html&q=hello+world. Le ? initial est facultatif dans le second mode. Ce mode traite # comme une partie de la valeur ; utilisez une URL complète pour conserver un fragment distinct.
Sélectionnez Lire les paramètres, modifiez les noms et les valeurs décodés, puis ajoutez ou supprimez des lignes. Les noms répétés, leur ordre et les valeurs vides sont conservés. L’entrée originale reste visible pour comparaison. Modifier cette entrée ou son type efface les lignes et le résultat jusqu’à une nouvelle lecture. Une URL sans paramètres peut servir de point de départ.
Original: https://example.com/?tag=css&tag=html&q=hello%20world#results
Rebuilt: https://example.com/?tag=css&tag=html&q=hello+world#results
La reconstruction utilise l’encodage de formulaire et peut modifier l’écriture de l’URL. Les segments & vides sont retirés, un nom seul comme flag devient flag=, un marqueur de requête vide est retiré et les échappements sont uniformisés. La normalisation du navigateur peut aussi mettre le nom d’hôte en minuscules, retirer un port par défaut ou résoudre des segments de chemin. Le fragment est conservé dans l’URL normalisée par le navigateur. Vérifiez le résultat : une URL signée ou une application dépendant des octets exacts des paramètres peut ne plus fonctionner après normalisation.
Une URL complète doit commencer par http:// ou https://, sans espaces littéraux, caractères de contrôle ni barres obliques inverses. Cet éditeur local n’est pas un vérificateur de liens : il n’ouvre, ne contacte et ne vérifie jamais la destination.
Limites et outils complémentaires
L’entrée est limitée à 65 536 unités de chaîne JavaScript et à 200 paramètres. Les noms et valeurs décodés, les séparateurs, l’URL de base et le fragment partagent cette même limite lors de la reconstruction. Certains caractères, dont de nombreux émojis, occupent deux unités. La sortie encodée peut être plus longue que l’entrée. Les caractères Unicode incomplets sont refusés. Les données restent en mémoire et sont effacées lorsque vous quittez la page ; les copies dans le presse-papiers et les fichiers téléchargés restent sous votre contrôle et peuvent contenir des secrets.
Utilisez l’encodeur et décodeur HTML pour les entités comme &. L’échappement HTML et l’encodage URL répondent à des besoins distincts. Pour préparer une requête HTTP à partir d’une URL ou d’un corps de formulaire vérifiés, ouvrez le générateur de commandes cURL. Les valeurs ne sont pas transférées entre les outils.
Encoder et décoder les URL en programmation
Ces exemples utilisent la même valeur, hello + café, pour illustrer les espaces, un plus littéral et l’UTF-8. Encodez les noms et valeurs avant de les assembler ; n’encodez pas les séparateurs & et = de la requête. Les bibliothèques diffèrent pour la ponctuation, la casse hexadécimale, les entrées incorrectes et l’ordre. Les exemples présentent leurs API sans reproduire tous les contrôles de cet outil.
JavaScript et TypeScript
Utilisez encodeURIComponent pour un composant et URLSearchParams (traduction partielle) pour les paramètres de formulaire. Un tableau de paires conserve les noms répétés ; un objet simple peut perdre les doublons. Le décodage natif de URLSearchParams est permissif, contrairement aux contrôles stricts de cet outil.
const value = "hello + café";
const encoded = encodeURIComponent(value);
console.log(encoded); // hello%20%2B%20caf%C3%A9
console.log(decodeURIComponent(encoded)); // hello + café
const query = new URLSearchParams([
["q", value], ["tag", "css"], ["tag", "html"]
]);
console.log(query.toString()); // q=hello+%2B+caf%C3%A9&tag=css&tag=html
console.log(query.getAll("tag")); // ["css", "html"]
Python
Le module standard urllib.parse (traduction partielle) distingue quote et quote_plus. Utilisez safe="" si une barre oblique appartient à une valeur. parse_qsl conserve les paires ordonnées et keep_blank_values=True garde les valeurs vides. errors="strict" contrôle le décodage UTF-8 mais ne refuse pas tous les échappements incorrects ; ces exemples ne remplacent pas la validation de l’outil.
from urllib.parse import quote, unquote, quote_plus, unquote_plus, urlencode, parse_qsl
value = "hello + café"
component = quote(value, safe="")
form = quote_plus(value, safe="")
print(component) # hello%20%2B%20caf%C3%A9
print(unquote(component, errors="strict")) # hello + café
print(form) # hello+%2B+caf%C3%A9
print(unquote_plus(form, errors="strict")) # hello + café
pairs = parse_qsl("tag=css&tag=html&empty=", keep_blank_values=True)
print(urlencode(pairs)) # tag=css&tag=html&empty=
PHP
Utilisez rawurlencode pour l’échappement RFC 3986 et urlencode pour les valeurs de formulaire. Enregistrez le fichier en UTF-8 : PHP encode les octets de la chaîne. Les règles de ponctuation diffèrent de celles de encodeURIComponent en JavaScript. Ces exemples s’exécutent en ligne de commande sans envoyer de requête.
<?php
$value = 'hello + café';
$component = rawurlencode($value);
$form = urlencode($value);
echo $component, PHP_EOL; // hello%20%2B%20caf%C3%A9
echo rawurldecode($component), PHP_EOL; // hello + café
echo $form, PHP_EOL; // hello+%2B+caf%C3%A9
echo urldecode($form), PHP_EOL; // hello + café
C# et .NET
Utilisez Uri.EscapeDataString pour un composant et WebUtility.UrlEncode pour les espaces de formulaire. WebUtility conserve certains signes, dont !, ( et ), sans les échapper : sa sortie n’est donc pas identique octet par octet à celle de cet outil. L’exemple utilise les instructions de premier niveau de .NET moderne.
using System;
using System.Net;
string value = "hello + café";
string component = Uri.EscapeDataString(value);
string form = WebUtility.UrlEncode(value);
Console.WriteLine(component); // hello%20%2B%20caf%C3%A9
Console.WriteLine(Uri.UnescapeDataString(component)); // hello + café
Console.WriteLine(form); // hello+%2B+caf%C3%A9
Console.WriteLine(WebUtility.UrlDecode(form)); // hello + café
Go
Le paquet standard net/url (en anglais) fournit l’encodage et le décodage des paramètres. Values.Add garde les valeurs répétées, mais Values.Encode trie les clés : il ne préserve pas l’ordre initial entre des noms différents. PathEscape suit d’autres règles et ne remplace pas l’encodage de requête.
package main
import (
"fmt"
"net/url"
)
func main() {
encoded := url.QueryEscape("hello + café")
decoded, err := url.QueryUnescape(encoded)
if err != nil {
panic(err)
}
fmt.Println(encoded) // hello+%2B+caf%C3%A9
fmt.Println(decoded) // hello + café
query := url.Values{}
query.Add("tag", "css")
query.Add("tag", "html")
fmt.Println(query.Encode()) // tag=css&tag=html
}
Rust
Ajoutez la bibliothèque form_urlencoded (en anglais) avec cargo add form_urlencoded. Elle sérialise les paramètres de formulaire et les décode en une suite de paires. Le décodage est permissif : il ne fournit pas les erreurs strictes de cet outil pour les échappements ou l’UTF-8 incorrects.
use form_urlencoded::{parse, Serializer};
fn main() {
let query = Serializer::new(String::new())
.append_pair("q", "hello + café")
.append_pair("tag", "css")
.append_pair("tag", "html")
.finish();
println!("{}", query); // q=hello+%2B+caf%C3%A9&tag=css&tag=html
let pairs: Vec<(String, String)> = parse(query.as_bytes()).into_owned().collect();
assert_eq!(pairs[0].1, "hello + café");
assert_eq!(pairs[1].0, pairs[2].0);
}
Java
URLEncoder et URLDecoder, documentés en anglais, traitent des valeurs de formulaire, pas des URL complètes. Indiquez explicitement UTF-8. Ces surcharges Charset nécessitent Java 10 ou une version ultérieure. URLDecoder peut remplacer les octets encodés invalides ; ses erreurs diffèrent donc de celles de cet outil.
import java.net.URLEncoder;
import java.net.URLDecoder;
import java.nio.charset.StandardCharsets;
public class UrlExample {
public static void main(String[] args) {
String value = "hello + café";
String encoded = URLEncoder.encode(value, StandardCharsets.UTF_8);
String decoded = URLDecoder.decode(encoded, StandardCharsets.UTF_8);
System.out.println(encoded); // hello+%2B+caf%C3%A9
System.out.println(decoded); // hello + café
}
}
Swift
La méthode addingPercentEncoding de Foundation (en anglais) reçoit un jeu de caractères autorisés. Ici, les caractères ASCII non réservés de la RFC 3986 sont choisis pour une valeur. N’utilisez pas le jeu plus large autorisé dans une requête pour une valeur contenant & ou +. Cet exemple encode un composant ; removingPercentEncoding ne transforme pas un plus littéral en espace.
import Foundation
let value = "hello + café"
let allowed = CharacterSet(charactersIn:
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~")
if let encoded = value.addingPercentEncoding(withAllowedCharacters: allowed),
let decoded = encoded.removingPercentEncoding {
print(encoded) // hello%20%2B%20caf%C3%A9
print(decoded) // hello + café
} else {
print("Invalid text")
}
Delphi et Object Pascal
TNetEncoding.URL fournit l’encodage et le décodage dans la bibliothèque RTL de Delphi. L’exemple par défaut de cette référence utilise des plus pour les espaces, et le décodage interprète les plus comme des espaces. Les règles de ponctuation diffèrent de celles de cet outil. Ce code est propre à Delphi ; il n’est pas garanti compatible avec tous les compilateurs Object Pascal.
program UrlExample;
{$APPTYPE CONSOLE}
uses
System.SysUtils, System.NetEncoding;
var
Value, Encoded, Decoded: string;
begin
Value := 'hello + caf' + Char($00E9);
Encoded := TNetEncoding.URL.Encode(Value);
Decoded := TNetEncoding.URL.Decode(Encoded);
Writeln(Encoded);
Writeln(Decoded);
end.
Comment utiliser cet outil
- Choisissez Encoder, Décoder ou Modifier les paramètres.
- Pour une conversion, choisissez Composant URL ou Valeur de formulaire, puis saisissez un nom ou une valeur. Le résultat évolue pendant la saisie.
- Pour modifier les paramètres, choisissez le type d’entrée, collez l’original et sélectionnez Lire les paramètres. Modifiez les lignes et comparez le résultat reconstruit avec l’original.
- Corrigez les erreurs, puis utilisez Copier le résultat ou Télécharger le résultat. Si la copie est indisponible, sélectionnez la sortie et copiez-la manuellement. Effacer supprime les données de travail.
Vos données restent dans votre navigateur
Cet outil traite vos données sur votre appareil. Le texte, les fichiers ou les mots de passe saisis et les résultats produits ne sont envoyés ni à nos serveurs ni à un autre serveur.
Le chargement des pages et de leurs ressources génère des requêtes. En production, les pages chargent aussi Google Tag Manager, Cloudflare Web Analytics et les publicités AdSense ; le code des outils ne transmet ni vos saisies ni vos résultats aux services de mesure ou de publicité. Consultez notre politique de confidentialité.
Pour examiner les requêtes pendant l'utilisation de l'outil, ouvrez les outils de développement de votre navigateur, puis l'onglet Réseau. Faites un essai avec des données fictives.
Consultez Comment examiner les requêtes réseau dans Chrome, Firefox, Edge et Safari.
Références
- MDN : encodeURIComponent - les règles JavaScript pour encoder un composant URL, notamment les caractères laissés tels quels et le traitement d’Unicode.
- MDN : URLSearchParams (traduction partielle) - la manipulation des paramètres, les clés répétées et la sérialisation de formulaire. Cet outil refuse volontairement les échappements incorrects au lieu d’appliquer le décodage permissif de cette API.
- Standard URL du WHATWG (en anglais) - la référence normative pour l’analyse et la sérialisation des URL, l’encodage en pourcentage et le format application/x-www-form-urlencoded.