Aller au contenu

Encodeur et décodeur d’URL

URL Encoder & Decoder

Encode et décode les URL et les valeurs de requête en pourcentage, avec un mode composant et un mode URL entière.

Encode et décode les URL en pourcentage, en gardant séparées les quatre règles différentes que l'on appelle toutes « encodage d'URL » : `encodeURIComponent`, `encodeURI`, le RFC 3986 strict, et l'encodage de formulaire où un espace devient `+`. Choisir la mauvaise, c'est ce qui produit un lien qui marche jusqu'à ce que quelqu'un tape un `&`.

🔒 Fonctionne entièrement dans votre navigateururlencodedecodepercent
Règles
Sens
Portée

Une valeur de requête, un segment de chemin, un fragment. `encodeURIComponent` : échappe `/ ? : @ & = + $ , #` et laisse `A-Za-z0-9 - _ . ! ~ * ' ( )`.

Texte

Encodé

Entrée

0 caractères

Sortie

0 caractères

Caractères échappés

0

Comment s’en servir

  1. Choisissez d'abord la portée

    Composant pour une valeur de requête ou un segment de chemin — c'est le cas courant. URL entière seulement pour une URL que vous avez déjà et voulez simplement mettre au propre ; elle laisse délibérément `?`, `&` et `/` tranquilles.

  2. Collez et lisez la sortie

    Les compteurs sous les panneaux indiquent combien de caractères ont été échappés, ce qui permet de remarquer vite que vous avez choisi une portée qui n'a rien fait.

  3. Réglez l'encodage des octets quand vous décodez une vieille URL

    Un lien venu d'un site français d'il y a dix ans encodait en pourcentage des octets Latin-1 (ISO-8859-1 ou Windows-1252), pas de l'UTF-8, et le décoder en UTF-8 donne des caractères parasites là où il y avait un accent. Le sélecteur du mode décodage propose EUC-KR, Shift_JIS, GB18030 et la famille Latin-1.

  4. Éditez la requête sous forme de champs quand ils sont nombreux

    L'interrupteur « Éditer comme une chaîne de requête » découpe l'URL en lignes nom/valeur. Les valeurs sont affichées décodées et réécrites encodées : une URL entière imbriquée dans un paramètre `next=` survit donc à l'édition.

Questions fréquentes

Quelle est la différence entre Composant et URL entière ?

Composant échappe les délimiteurs — `/ ? : @ & = +` — parce qu'une *valeur* qui en contiendrait ferait autrement éclater l'URL. URL entière les laisse, parce qu'ils sont la structure. Utiliser URL entière sur une valeur est la manière standard de construire un lien qui échoue dès que la valeur contient une esperluette.

Pourquoi ma signature ne se vérifie-t-elle pas ?

Sans doute parce qu'`encodeURIComponent` laisse `! ' ( ) *` tranquilles, et pas le RFC 3986. OAuth 1.0, AWS SigV4 et la plupart des autres schémas de signature canonisent avec la règle stricte : une valeur contenant une apostrophe donne donc un hash différent. C'est à cela que sert la portée Stricte.

Que veut dire la note « encodé deux fois » ?

Que décoder à nouveau le résultat donne autre chose — un `%2520` là où un `%20` était voulu. Cela signifie en général qu'une valeur est passée par un encodeur côté client, puis encore par un proxy ou un framework. Décodez deux fois pour retrouver l'original, puis corrigez la chaîne de traitement.

Pourquoi un espace est-il tantôt `+`, tantôt `%20` ?

`+` appartient à `application/x-www-form-urlencoded` — les corps de POST de formulaire et ce que produit `URLSearchParams`. Partout ailleurs dans une URL, un espace est `%20`, et un `+` signifie un signe plus littéral. Les mélanger transforme `a+b` en `a b`, ou l'inverse.

À alimenter depuis

Ensuite

Ces outils acceptent ce que celui-ci produit : le résultat peut y aller directement.