KeroTools

Encodeur et Décodeur d'URL

Encodez une URL en pourcentage ou décodez-la pour qu'elle fonctionne dans les requêtes et formulaires — instantanément.

Entrée
0 caractères
Sortie

Votre texte reste sur votre appareil

Rien à supprimer ensuite

Sûr pour les URL portant des jetons

Fonctionne dans tout navigateur moderne

Comment ça marche

  1. 1

    Collez votre texte ou votre URL

    Une valeur de paramètre à encoder, ou une chaîne encodée en pourcent à relire.

  2. 2

    Choisissez sa destination

    Une URL entière, ou un unique composant qui se loge dans une URL — les règles diffèrent.

  3. 3

    Copiez le résultat

    Emportez-le dans un lien, une requête, une cible de redirection ou une valeur de configuration.

Pourquoi cet outil

Modes composant et URL complète

Encodez la valeur d’un paramètre ou une adresse entière — les règles diffèrent, et les mélanger est le bogue habituel.

L’espace traité explicitement

Choisissez `%20` ou `+`, car une chaîne de requête et un segment de chemin ne s’accordent pas sur celui qui signifie espace.

Double encodage évité

Une entrée déjà encodée est reconnue, si bien que `%20` ne devient pas silencieusement `%2520`.

UTF-8 fait correctement

Les caractères arabes, turcs et accentués deviennent les bonnes séquences d’octets et non une sortie abîmée.

Rien n’est envoyé

La conversion a lieu dans votre navigateur — une URL portant un jeton de session n’atteint jamais un serveur.

Gratuit et sans compte

Aucune inscription, aucun filigrane et aucune limite sur la quantité convertie.

Il n’existe pas un seul « encodage d’URL » — il y en a deux, et ils divergent

C’est le fait qui dissipe l’essentiel de la confusion sur ce sujet. Encoder une URL entière et encoder un morceau destiné à entrer dans une URL sont deux opérations aux règles différentes, et employer la mauvaise est la façon la plus courante de casser un lien. Une adresse complète a besoin que ses `/`, `?`, `&`, `#` et `:` restent intacts, car c’est la ponctuation qui lui donne sa forme. Une valeur isolée — un terme de recherche, une cible de redirection, un nom de fichier dans un paramètre — a besoin que précisément ces caractères soient échappés, car à l’intérieur d’une valeur ce sont des données et non de la structure. Encodez une URL entière avec les règles de composant et vous obtenez une chaîne inutilisable de `%2F` et de `%3A`. Encodez un composant avec les règles d’URL complète et une barre oblique dans votre valeur devient silencieusement un séparateur de chemin. Décidez laquelle des deux vous faites avant de commencer.

L’endroit de l’adresse où vous êtes décide de ce qu’il faut échapper

Cela découle de ce qui précède, et mérite d’être dit franchement car cela explique les cas qui semblent incohérents. Une barre oblique dans un chemin est un séparateur et doit rester une barre ; une barre dans la valeur d’un paramètre n’est qu’un caractère et peut rester, même si l’échapper est plus sûr. Un point d’interrogation dans le chemin ouvre la chaîne de requête ; le même caractère dans la valeur d’un paramètre doit devenir `%3F`, sinon tout ce qui suit est lu comme d’autres paramètres. L’esperluette dans une valeur est le cas le plus tranchant : laissez-la brute et la valeur se scinde en deux, si bien qu’une recherche de « R&D » arrive en paramètre nommé `D`. La règle à retenir : les caractères réservés ne le sont que là où ils peuvent faire leur travail, et dans une valeur ils ne le peuvent pas — c’est exactement pourquoi il faut les y échapper.

Le signe plus veut dire deux choses différentes, et les deux sont justes

L’espace est le caractère que l’on rencontre en premier et celui à l’histoire la plus embrouillée. L’encodage pourcent dit qu’un espace vaut `%20`, et dans un segment de chemin c’est la seule bonne réponse : un `+` littéral dans un chemin est un signe plus, rien de plus. Mais la soumission de formulaires HTML a défini son propre encodage pour les chaînes de requête, où un espace s’écrit `+` et où un plus littéral doit s’écrire `%2B`. Les deux conventions sont vivantes, chacune juste dans son contexte, et les décodeurs les traitent différemment : en mode chaîne de requête, `+` devient une espace ; en mode chemin, il reste tel quel. Voilà pourquoi une valeur contenant un plus — un numéro de téléphone au format international, une adresse étiquetée comme `nom+travail@exemple.com` — arrive si souvent avec le plus remplacé par une espace. Si votre valeur peut contenir un plus littéral, échappez-le en `%2B` et cessez de dépendre de la convention choisie par le destinataire.

Le double encodage est le bogue que vous rencontrerez vraiment

Puisque `%` ouvre une séquence d’échappement, le signe pourcent lui-même doit être encodé, en `%25`. Cette seule règle engendre la panne la plus courante de tout ce domaine. Encodez une chaîne deux fois et `%20` devient `%2520`, car le `%` du premier résultat est échappé par la seconde passe. Le résultat se décode une fois en `%20` — visible, littéral, au milieu de votre valeur — au lieu d’une espace. Cela arrive sans cesse : une URL est encodée par une application, puis réencodée par un cadre applicatif, un gestionnaire de redirection ou un traceur de liens qui suppose avoir reçu du texte brut. Le symptôme est un lien qui fonctionne à un endroit et affiche `%2520` ou `%253A` ailleurs. Quand vous voyez un `25` posé devant une autre séquence d’échappement, vous regardez un double encodage, et la solution est de retirer une étape plutôt que de décoder deux fois.

Les caractères hors ASCII sont encodés en octets, pas en caractères

L’encodage pourcent n’a aucune notion de lettre. Il échappe des octets, ce qui veut dire que tout caractère hors ASCII doit d’abord devenir des octets, et la norme pour cela est UTF-8. Voilà pourquoi une seule lettre arabe devient trois séquences d’échappement et un emoji quatre : vous voyez ses octets UTF-8 écrits un à un. La conséquence à connaître est qu’un encodeur utilisant un autre jeu de caractères produit une sortie différente pour la même entrée — c’est ainsi qu’une URL contenant un nom fonctionne sur un système et renvoie un 404 sur un autre. Il existe en outre un second mécanisme qu’on confond avec celui-ci : un nom de domaine hors ASCII n’est pas encodé en pourcent du tout mais converti en Punycode, un schéma entièrement distinct qui produit les préfixes `xn--` que l’on aperçoit parfois. Le chemin et la requête utilisent l’encodage pourcent ; l’hôte non.

Pourquoi encoder en local compte pour ce type de texte

Pensez aux URL que l’on colle dans un encodeur. C’est une adresse de rappel avec un jeton de session dans la chaîne de requête. C’est un lien signé avec un paramètre de signature expirant. C’est une URL de réinitialisation de mot de passe en cours de débogage, un point d’accès de webhook avec un secret partagé, une adresse d’administration interne qui révèle un nom d’hôte. Les URL portent des identifiants de connexion dans leurs chaînes de requête bien plus souvent qu’on ne le remarque, précisément parce qu’une chaîne de requête ressemble à de la configuration plutôt qu’à un secret. En coller une dans un encodeur hébergé envoie le tout à un tiers, et si cette URL contient un jeton actif, vous venez de partager un identifiant vivant. Cet outil convertit dans la page et ne transmet rien, ce que vous pouvez vérifier dans l’onglet Réseau des outils de développement.

Erreurs courantes à éviter

  • Encoder une URL entière avec les règles de composant. Les `/` et `:` deviennent `%2F` et `%3A` et l’adresse cesse d’être une adresse — URL complètes et valeurs internes réclament des règles distinctes.
  • Laisser une esperluette brute dans la valeur d’un paramètre. Elle scinde la valeur en deux : une recherche de « R&D » arrive en paramètre supplémentaire nommé `D` ; échappez-la en `%26`.
  • Croire que `+` signifie toujours une espace. C’est vrai dans une chaîne de requête et faux dans un chemin : un plus littéral dans un numéro de téléphone ou une adresse étiquetée s’écrit `%2B` quel que soit le contexte.
  • Encoder ce qui était déjà encodé. Le `%` est échappé en `%25`, donc `%20` devient `%2520` et se décode en texte visible au lieu d’une espace — retirez une étape plutôt que de décoder deux fois.
  • Coller une URL de rappel ou de réinitialisation dans un encodeur hébergé. Les chaînes de requête portent jetons de session et signatures bien plus souvent qu’on ne le remarque ; encodez en local.

Comparaison

CritèreCet outilEncodeurs en ligneLa console du navigateur
Contenu envoyé à un serveurJamaisLe plus souventNon
Modes composant et URL complèteLes deux, explicitesSouvent un seulDeux fonctions distinctes
Convention d’espace au choixOuiRarementNon
Double encodage détectéOuiRarementNon
Compte ou inscriptionPas nécessaireSouvent exigéPas nécessaire
PrixGratuitGratuit / offres payantesGratuit

Fonctionnalités

Encodage et décodage

Les deux sens au même endroit, avec entrée et sortie côte à côte.

URL complète ou composant

La première préserve `/`, `?` et `&` ; le second les échappe, car dans une valeur ce sont des données.

Espace en `%20` ou `+`

Alignez-vous sur la convention du contexte que traverse la valeur.

Séquences d’octets UTF-8 correctes

Les caractères hors ASCII sont encodés octet par octet, comme l’exige la norme.

Supporte les entrées longues

Des chaînes de requête entières et de longues chaînes de redirection se convertissent sans plafond.

Entrée malformée signalée

Un `%` isolé ou une séquence d’échappement incomplète est signalé au lieu d’être écarté en silence.

Rien à installer

Pas de console, pas d’environnement d’exécution, pas de dépendances : tout se passe sur la page web.

Compatible arabe et RTL

Interface complète en huit langues, dont l’arabe de droite à gauche.

Sécurisé par défaut

Servi en HTTPS, sans suivi du contenu ni envoi à un tiers.

Qui l’utilise

Développeurs

Construire un paramètre de requête qui survit à ce que le système destinataire lui fera.

Intégrateurs d’API

Encoder une cible de redirection ou une adresse de rappel sans casser l’URL qui la contient.

Équipes marketing

Rendre sûrs des paramètres de campagne quand la valeur contient espaces, esperluettes ou texte non latin.

Ingénieurs support

Relire un lien fourni par un client pour voir ce que disent réellement les paramètres.

Questions Fréquentes

Non. Tout s’exécute localement dans votre navigateur — votre texte n’est jamais envoyé, stocké ni partagé.

Oui — entièrement gratuit, sans compte et sans limite.