Encodeur d’URL
Encodez en pourcentage des valeurs de requête et des URL complètes pour votre code
À propos de l’outil Encodeur d’URL
L’outil Encodeur d’URL donne les trois encodages en pourcentage dont le code JavaScript a le plus souvent besoin. « Une valeur » exécute encodeURIComponent, qui échappe & = ? / # et tous les autres caractères sauf les lettres, les chiffres et - _ . ! ~ * ' ( ), pour un seul paramètre de requête ou segment de chemin. « Une URL entière » exécute encodeURI entre les séquences %XX déjà présentes : l’adresse garde sa structure et %20 ne devient jamais %2520. « RFC 3986 strict » échappe aussi ! ' ( ) *. « Décoder » exécute decodeURIComponent et, par défaut, lit d’abord + comme une espace, comme le font les données de formulaire. Les mêmes appels que vous écririez dans votre code s’exécutent ici, sur votre appareil.
Exemple
Une valeur de requête encodée avec « Une valeur », puis une adresse complète encodée avec « Une URL entière » :
Entrée
café au lait & croissants https://example.com/search?q=café au lait&page=2
Encoder
caf%C3%A9%20au%20lait%20%26%20croissants https://example.com/search?q=caf%C3%A9%20au%20lait&page=2
Comment encoder une valeur ou une URL entière
- 1Collez dans la zone une valeur de requête, un segment de chemin ou une URL complète.
- 2Dans « Encoder comme », choisissez « Une valeur (paramètre de requête, segment de chemin) », « Une URL entière (garde : / ? # & = + ; , @ $) » ou « RFC 3986 strict (aussi ! ' ( ) *) ».
- 3Cliquez sur « Encoder », ou sur « Décoder » pour retransformer les séquences %XX en caractères.
- 4Récupérez la chaîne encodée avec « Copier », ou enregistrez-la dans encoded.txt avec « Télécharger ».
Formats et limites
- Modes d’encodage
- encodeURIComponent ; encodeURI, en gardant les séquences %XX existantes ; encodeURIComponent, avec ! ' ( ) * échappés en plus
- Décoder
- decodeURIComponent, après avoir changé + en espace, sauf si vous décochez cette case
- Gardés par « Une URL entière »
- Lettres, chiffres, - _ . ! ~ * ' ( ) et ; / ? : @ & = + $ , #
- Erreurs
- Une séquence d’échappement incorrecte donne « Encodage d’URL non valide » ; un code de substitution isolé ne peut pas être encodé
Usages courants
- Construire une chaîne de requête à la main
- Vérifiez ce que renvoie encodeURIComponent pour un terme de recherche contenant & ou # avant de concaténer ?q= et &page= dans un appel fetch ou une commande curl.
- Déboguer une signature refusée
- Quand une requête OAuth 1.0a ou AWS Signature Version 4 est refusée, encodez chaque paramètre avec « RFC 3986 strict » et comparez-le à la chaîne de base de la signature que votre bibliothèque écrit dans son journal.
- Faire correspondre un redirect_uri
- Un fournisseur OAuth compare redirect_uri caractère par caractère : encoder https://app.example.com/callback avec « Une valeur » donne https%3A%2F%2Fapp.example.com%2Fcallback, la forme qui va dans l’URL d’autorisation.
- Lire un corps de formulaire dans un journal
- Collez un corps application/x-www-form-urlencoded comme name=Ann+Lee&city=S%C3%A3o+Paulo avec la case du + cochée, et « Décoder » renvoie name=Ann Lee&city=São Paulo.
Quel outil choisir
- Encoder et décoder une URL: la page des outils de texte exécute le même code pour les liens courants, les termes de recherche et les objets d’e-mail, avec des explications sans noms de fonctions JavaScript ; partagez-la avec quelqu’un qui ne programme pas.
- Analyseur d’URL: pour lister chaque paramètre de requête d’une adresse complète avec sa valeur décodée, lue par la classe URL du navigateur, au lieu de décoder le texte comme une seule chaîne.
- Encodeur HTML: quand le texte va dans une page HTML plutôt que dans une adresse : il écrit & ; et < ; là où cet outil écrirait %26 et %3C.
Où votre texte est traité
L’encodage et le décodage appellent les propres fonctions encodeURIComponent, encodeURI et decodeURIComponent de votre navigateur, dans cette page : les chaînes que vous collez, jetons et clés compris, ne sont donc pas envoyées à nos serveurs. Quand « Encoder », « Décoder » ou une copie dans le presse-papiers échoue, nous recevons le message d’erreur du navigateur, le nom de l’outil, ainsi que le nom et la version de votre navigateur, sans le texte qui a causé l’erreur.
Questions fréquentes
Dois-je utiliser encodeURIComponent ou encodeURI ?
Utilisez encodeURIComponent (« Une valeur ») pour un seul paramètre : il échappe & = ? / # pour qu’ils ne puissent pas terminer la valeur trop tôt. Utilisez encodeURI (« Une URL entière ») pour une adresse complète qui doit continuer à fonctionner ; il laisse : / ? # & = et + intacts.
Pourquoi + devient-il une espace quand je décode ?
La case « Décoder le signe + comme une espace (données de formulaire et chaînes de requête) » est cochée par défaut, comme le veulent les données application/x-www-form-urlencoded. Décochez-la quand + désigne un vrai signe plus, comme dans a+b@x.com. « Une valeur » et « RFC 3986 strict » encodent + en %2B : leur résultat ne contient donc jamais de + brut.
Les espaces sont-elles encodées en %20 ou en + ?
En %20, dans les trois modes. Aucun n’écrit + pour une espace : cette convention appartient à l’encodage des formulaires HTML, que cet outil lit au décodage mais ne produit jamais.
Une URL déjà encodée sera-t-elle encodée deux fois ?
Non avec « Une URL entière » : les séquences comme %20 sont gardées, donc rien ne devient %2520. Oui avec les deux autres modes, où % lui-même devient %25, ce qui est correct quand le caractère % fait partie de la valeur.
Quel mode faut-il pour une signature OAuth 1.0a ou AWS Signature Version 4 ?
« RFC 3986 strict ». Les deux spécifications ne laissent non échappés que les lettres, les chiffres et - . _ ~, exactement ce que produit ce mode ; encodeURIComponent seul garde ! ' ( ) * et la signature calculée ne correspondrait pas.
Comment obtenir + pour les espaces, comme les écrit URLSearchParams ?
Cet outil écrit toujours %20. Encodez avec « Une valeur », puis remplacez chaque %20 par + dans le résultat ; tout + présent dans votre texte est déjà devenu %2B, il reste donc un signe plus.
« Décoder » accepte-t-il les séquences en minuscules comme %c3%a9 ?
Oui. decodeURIComponent lit les chiffres hexadécimaux en minuscules comme en majuscules : %c3%a9 et %C3%A9 donnent tous deux é. Les séquences ajoutées par les encodeurs sont toujours en majuscules.
Pourquoi « Encoder » refuse-t-il ma chaîne avec un message de caractère cassé ?
encodeURIComponent et encodeURI lèvent une URIError sur un code de substitution UTF-16 isolé, la moitié d’une paire qui forme un émoji, souvent laissée en coupant une chaîne à une longueur fixe avec slice ou substring. Corrigez la chaîne là où elle a été coupée ; la page affiche ce message au lieu d’un résultat.
Trucs et astuces
- ✓Encodez d’abord chaque valeur de paramètre avec « Une valeur », puis assemblez vous-même les paires name=value avec &.
- ✓« Une URL entière » laisse + tel quel : décochez la case du + avant de décoder un tel résultat, sinon un + qu’il contient redevient une espace.