Aller au contenu principal
PulsarKit

Encoder et décodeur d’URL

Pourcent-encodez du texte pour l’insérer dans une URL ou faites l’opération inverse, avec les trois schémas qui diffèrent vraiment et une liste traitée ligne par ligne.

Déposez vos fichiers ici

.txt · jusqu’à 5 Mo

Comment encoder et décoder une URL

  1. 1

    Collez votre texte ou une liste d’URL

    Une valeur ou cinquante, une par ligne. Un fichier .txt fonctionne aussi, en encodage UTF-8 ou Windows-1251.

  2. 2

    Choisissez encoder ou décoder et un schéma

    Composant pour une seule valeur, URI complète pour une adresse entière, form-urlencoded pour un corps de requête POST.

  3. 3

    Copiez le résultat

    Copiez-le directement ou téléchargez-le comme fichier texte, la structure par lignes est conservée dans les deux cas.

Trois schémas, et pourquoi une erreur casse les liens

L’encodage de composant échappe tout ce qui n’est pas non réservé, y compris : / ? # & =. C’est correct pour une seule valeur insérée dans une chaîne de requête, et incorrect pour une adresse complète : encodez https://example.com/a?b=1 comme composant et chaque caractère structurel devient une séquence de pourcent, ce qui donne une chaîne qui n’est plus une URL. L’encodage d’URI complète laisse ces caractères structurels tels quels et n’échappe que les espaces et les caractères non ASCII, ce qu’il faut quand l’entrée est déjà une adresse complète. Le schéma form-urlencoded est l’encodage de composant avec une substitution de plus : les espaces deviennent des signes plus, comme l’exige le format utilisé par les formulaires HTML pour envoyer des données.

Le signe plus est réellement ambigu

Dans un corps form-urlencoded, + signifie un espace. Dans un segment de chemin, + signifie un plus littéral. Le décodage ne peut pas distinguer les deux à partir de la chaîne seule, c’est pourquoi il s’agit d’un réglage et non d’une supposition : choisissez form-urlencoded ou activez l’option plus-comme-espace, et les signes plus deviennent des espaces ; laissez-la désactivée et ils restent des plus. L’encodage a un piège lié dans l’autre sens : un + littéral dans l’entrée doit devenir %2B avant que les espaces ne soient transformés en plus, sinon un aller-retour dans l’encodeur le convertit silencieusement en espace. Cet ordre est fixé ici, donc encoder puis décoder redonne toujours exactement ce avec quoi vous avez commencé.

Échappements invalides, identifiés précisément

Un % isolé qui n’est pas suivi de deux chiffres hexadécimaux, ou une séquence multioctet tronquée comme %E0%A4, rend une chaîne indécodable, et le décodeur intégré du navigateur lève une exception sans indiquer où. Le mode strict signale la ligne et la position du premier problème pour que vous puissiez le trouver dans une longue liste. Le mode souple traite un % non apparié comme un signe pour cent littéral et renvoie le reste, ce qui est en général ce qu’il faut quand l’entrée est une ligne de journal et non une vraie URL. Travailler ligne par ligne compte pour la même raison : une seule entrée invalide dans une liste de cinquante indique laquelle pose problème.

Le texte reste dans cet onglet

La conversion utilise les fonctions d’encodage intégrées au navigateur et s’exécute entièrement en local. Les chaînes de requête contiennent souvent des jetons et des identifiants, il est donc utile de le dire clairement : rien n’est envoyé, journalisé ou conservé.

Questions fréquentes

Quelle est la différence entre encodeURI et encodeURIComponent ?

encodeURIComponent échappe aussi les caractères structurels : / ? # & =, ce qui convient pour une seule valeur dans une chaîne de requête. encodeURI les laisse intacts, ce qui convient quand l’entrée est une adresse complète qu’il faut seulement sécuriser.

Pourquoi + signifie-t-il parfois un espace ?

Parce que le format form-urlencoded utilisé par les envois de formulaires HTML le définit ainsi. Ailleurs dans une URL, + est un plus littéral. Comme la chaîne seule ne dit pas quel sens appliquer, le décodage en fait un choix explicite.

Que faire en cas d’erreur d’encodage pourcent invalide ?

Le message indique la ligne et la position du premier échappement invalide, en général un % isolé qui aurait dû être %25, ou une séquence multioctet tronquée. Corrigez-le, ou passez en décodage souple pour récupérer le reste du texte.

Est-ce que cela fonctionne sur une liste d’URL ?

Oui, et c’est le mode par défaut. Chaque ligne est convertie indépendamment, les lignes vides restent vides et les sauts de ligne ne sont jamais échappés, donc une liste entre et une liste sort.

Les sauts de ligne sont-ils conservés ?

En mode par ligne, oui, y compris un saut de ligne final. Désactivez le mode par ligne et toute l’entrée est traitée comme une seule valeur, donc ses propres sauts de ligne deviennent %0A dans le résultat.

Comment décoder du cyrillique dans une adresse ?

Collez l’adresse et décodez avec le schéma composant. Un UTF-8 encodé en pourcent comme %D0%BF%D1%80%D0%B8 est reconverti en lettres d’origine ; l’aller-retour est sans perte dans les deux sens.

Mon texte est-il envoyé quelque part ?

Non. L’encodage et le décodage utilisent des fonctions intégrées à votre navigateur, s’exécutent localement dans cet onglet et n’impliquent aucun serveur ni stockage.

Outils associés