Encodeur / décodeur d’URL

Cet encodeur et décodeur d’URL convertit les caractères spéciaux au format en pourcentage (%XX) pour les utiliser sans risque dans les URL, puis décode les chaînes encodées en texte lisible. Collez une URL ou un texte pour gérer caractères réservés, espaces et Unicode dans le développement web et les intégrations API.

Encodeur / décodeur d’URL

Encodez du texte pour une utilisation sûre dans les URL ou décodez des chaînes encodées

Questions fréquentes

Qu’est-ce que l’encodage URL ?

L’encodage URL, aussi appelé encodage en pourcentage, convertit des caractères dans un format pouvant être transmis sans risque dans une URL. Les caractères non autorisés ou ambigus dans les URL, comme les espaces, &, = et les caractères non ASCII, sont remplacés par un signe pourcentage (%) suivi de leur valeur hexadécimale sur deux chiffres. Par exemple, un espace devient %20.

Pourquoi les URL doivent-elles être encodées ?

Les URL ne peuvent contenir qu’un ensemble limité de caractères ASCII. Les caractères spéciaux comme les espaces, esperluettes (&), signes égal (=) et caractères non anglais peuvent casser l’analyse de l’URL ou être mal interprétés. L’encodage garantit que les données sont transmises correctement dans les chaînes de requête, soumissions de formulaires et requêtes API sans conflit avec la syntaxe de l’URL.

Quels caractères doivent être encodés dans une URL ?

Il faut encoder les espaces, les caractères non ASCII (lettres accentuées, caractères CJK) et les caractères réservés lorsqu’ils sont utilisés comme données plutôt que comme délimiteurs. Les caractères réservés incluent : / ? # [ ] @ ! $ & ' ( ) * + , ; =. Les caractères non réservés (A-Z, a-z, 0-9, -, _, ., ~) n’ont pas besoin d’encodage.

Qu’est-ce que l’encodage en pourcentage ?

L’encodage en pourcentage est le nom officiel de l’encodage URL défini par la RFC 3986. Chaque caractère est converti en sa séquence d’octets UTF-8, puis chaque octet est représenté sous la forme %XX, où XX est la valeur hexadécimale. Par exemple, le symbole euro est encodé %E2%82%AC (trois octets UTF-8). Le nom vient du préfixe % utilisé pour chaque octet encodé.

Quelle est la différence entre encodeURI et encodeURIComponent ?

En JavaScript, encodeURI() encode une URI complète mais conserve les caractères qui ont un rôle structurel dans les URL, comme :, /, ?, # et &. encodeURIComponent() encode tout sauf les caractères non réservés, ce qui le rend adapté aux valeurs individuelles de paramètres de requête. Utilisez encodeURI pour des URL complètes et encodeURIComponent pour les valeurs de paramètres.

Comment décoder une URL ?

Le décodage URL inverse l’encodage en pourcentage en convertissant les séquences %XX vers leurs caractères d’origine. En JavaScript, utilisez decodeURI() pour des URL complètes ou decodeURIComponent() pour des composants individuels. En Python, utilisez urllib.parse.unquote(). La plupart des langages fournissent des fonctions intégrées qui gèrent automatiquement les séquences UTF-8 multi-octets.

Quelle est la différence entre + et %20 pour les espaces dans les URL ?

+ et %20 peuvent représenter des espaces, mais dans des contextes différents. Le signe + vient du format application/x-www-form-urlencoded utilisé par les formulaires HTML. %20 est l’encodage en pourcentage standard défini par la RFC 3986. Dans les chemins d’URL, utilisez toujours %20. Dans les chaînes de requête, les deux sont acceptés, mais %20 est généralement plus compatible.

Comment encoder une URL en Python, Java ou PHP ?

En Python, utilisez urllib.parse.quote() pour encoder et urllib.parse.unquote() pour décoder. En Java, utilisez URLEncoder.encode(str, 'UTF-8') et URLDecoder.decode(str, 'UTF-8'). En PHP, utilisez urlencode() pour l’encodage type formulaire (espaces en +) ou rawurlencode() pour l’encodage RFC 3986 (espaces en %20). Pour décoder, utilisez urldecode() ou rawurldecode().

Qu’est-ce que le double encodage et comment l’éviter ?

Le double encodage survient lorsqu’une chaîne déjà encodée est encodée une seconde fois, transformant %20 en %2520 (le % lui-même devient %25). L’URL casse alors, car le serveur reçoit %20 comme texte littéral au lieu d’un espace. Pour l’éviter, décodez toujours complètement une chaîne avant de la réencoder, et n’encodez jamais une URL complète qui contient déjà des séquences en pourcentage valides.

Quelle est la différence entre encodage URL et encodage HTML ?

L’encodage URL (en pourcentage) convertit les caractères au format %XX pour les utiliser dans des URL. L’encodage HTML convertit les caractères en entités nommées (&, <, >) ou numériques (&, <) pour les afficher sans risque dans des documents HTML. Ils répondent à des besoins différents : l’encodage URL évite les erreurs d’analyse d’URL, l’encodage HTML limite les risques XSS et affiche correctement les caractères spéciaux.

À propos de l’encodeur / décodeur d’URL

L’encodeur / décodeur d’URL est un outil essentiel pour les développeurs web. Il convertit du texte en format sûr pour les URL avec l’encodage en pourcentage, ou décode des chaînes encodées en texte lisible. L’encodage URL garantit que les caractères spéciaux sont transmis correctement dans les URL sans erreur d’analyse ni ambiguïté.

Qu’est-ce que l’encodage URL ?

L’encodage URL, aussi appelé encodage en pourcentage, est un mécanisme qui encode les caractères ayant un sens spécial dans les URL ou non autorisés dans celles-ci. Chaque caractère encodé est remplacé par un signe pourcentage (%) suivi de deux chiffres hexadécimaux représentant la valeur de l’octet du caractère. Par exemple, un espace devient %20, et une esperluette (&) devient %26.

Comment utiliser l’encodeur / décodeur d’URL

  1. Sélectionnez l’onglet Encoder pour convertir du texte au format sûr pour URL, ou Décoder pour revenir au texte brut.
  2. Tapez ou collez votre texte dans la zone d’entrée.
  3. L’outil convertit instantanément votre saisie en temps réel.
  4. Consultez le détail des caractères pour voir lesquels ont été encodés.
  5. Cliquez sur le bouton de copie pour copier le résultat.

Caractères qui nécessitent un encodage URL

Les caractères suivants ont un sens spécial dans les URL et doivent être encodés lorsqu’ils sont utilisés comme valeurs de données :

CaractèreEncodéRôle dans l’URL
espace%20Séparateur
!%21Sous-délimiteur
#%23Identifiant de fragment
$%24Sous-délimiteur
&%26Séparateur de paramètres
'%27Sous-délimiteur
(%28Sous-délimiteur
)%29Sous-délimiteur
+%2BEspace (dans les formulaires)
/%2FSéparateur de chemin
:%3ASéparateur de schéma
=%3DSéparateur clé-valeur
?%3FDébut de chaîne de requête
@%40Séparateur d’informations utilisateur

Usages courants de l’encodage URL

  • Encoder des paramètres de chaîne de requête contenant des caractères spéciaux.
  • Préparer des données saisies par l’utilisateur avant de les inclure dans des URL.
  • Encoder des chemins de fichiers avec espaces ou caractères spéciaux.
  • Construire des URL de requêtes API avec paramètres dynamiques.
  • Encoder des URL de redirection transmises comme paramètres.
  • Gérer les noms de domaine et chemins internationalisés avec des caractères non ASCII.

encodeURIComponent vs encodeURI

Cet encodeur / décodeur utilise encodeURIComponent(), qui encode tous les caractères non réservés sauf lettres, chiffres, traits d’union, points, traits de soulignement et tildes. C’est la fonction appropriée pour encoder des composants individuels d’URL, comme les valeurs de paramètres de requête. L’alternative encodeURI() sert à encoder des URI complètes et conserve les caractères :, /, ? et #, qui ont un sens structurel dans les URL.

Encodage URL dans les langages de programmation

LangageEncoderDécoder
JavaScriptencodeURIComponent(str)decodeURIComponent(str)
Pythonurllib.parse.quote(str)urllib.parse.unquote(str)
JavaURLEncoder.encode(str, "UTF-8")URLDecoder.decode(str, "UTF-8")
PHPrawurlencode($str)rawurldecode($str)
C#Uri.EscapeDataString(str)Uri.UnescapeDataString(str)
Gourl.QueryEscape(str)url.QueryUnescape(str)
RubyCGI.escape(str)CGI.unescape(str)

Conseils pour l’encodage URL

  • Encodez toujours les entrées utilisateur avant de les inclure dans des URL afin de limiter les risques d’injection.
  • Utilisez encodeURIComponent() pour les valeurs de paramètres, pas pour des URL complètes.
  • Souvenez-vous que les espaces peuvent être encodés en %20 ou en + selon le contexte.
  • Le double encodage d’une chaîne déjà encodée peut provoquer des erreurs ; décodez avant de réencoder.
  • Les caractères Unicode sont d’abord convertis en octets UTF-8, puis chaque octet est encodé en pourcentage.

Outils associés