Qu'est-ce que l'encodage d'URL
Le codage d'URL, également appelé codage en pourcentage, remplace les caractères dangereux dans une adresse Web par un signe de pourcentage suivi d'un code. Un espace devient %20, une esperluette devient %26, et ainsi de suite. Cela vous permet de mettre du texte, des espaces, des accents, des symboles dans une URL sans la casser. Cet outil encode le texte pour une utilisation sûre dans les URL et décode le texte codé en pourcentage sous une forme lisible.
Pourquoi c'est nécessaire
Les URL ont un ensemble limité de caractères qu'elles peuvent contenir en toute sécurité. Lorsque vous insérez un terme de recherche, une valeur de paramètre ou un segment de chemin comprenant des espaces, des barres obliques, des points d'interrogation ou des lettres non anglaises directement dans une URL, ces caractères peuvent être mal interprétés et rompre le lien. L'encodage les convertit en une représentation sûre que les serveurs et les navigateurs décodent correctement. Toute personne créant des chaînes de requête, des appels API ou des liens par programmation en a constamment besoin.
Encodage et décodage
L'encodage prend du texte lisible et le rend sécurisé pour les URL, ce qui est essentiel lorsque vous construisez un lien ou un paramètre de requête. Le décodage fait l'inverse, transformant une chaîne codée en pourcentage en texte lisible, ce qui est utile lorsque vous lisez une URL que quelqu'un vous a envoyée, déboguer un appel API ou inspecter ce que contient réellement un paramètre. Cet outil fait les deux en un seul clic et gère correctement les caractères accentués et non anglais via UTF-8.
Situations courantes
Création d'une URL de recherche où la requête contient des espaces et des symboles. Transmission d'une valeur qui inclut une esperluette ou un signe égal via un paramètre de requête sans rompre la structure de l'URL. Lire une URL longue et codée pour comprendre vers quoi elle pointe. Construire des requêtes API où les paramètres doivent être encodés. Parce qu'il s'exécute dans votre navigateur, vous pouvez encoder ou décoder en toute sécurité les valeurs contenant des données sensibles.
Qu'est-ce que l'encodage d'URL
Le codage d'URL, également appelé codage en pourcentage, remplace les caractères dangereux ou réservés dans une URL par un signe de pourcentage suivi de deux chiffres hexadécimaux. Un espace devient %20, une esperluette devient %26, et ainsi de suite. Les URL sont limitées à un petit ensemble de caractères ASCII par la norme RFC 3986, donc tout ce qui se trouve en dehors de cet ensemble, des espaces, des accents, des emoji ou des symboles réservés comme ? & = # lorsqu'il est utilisé comme données, doit être codé pour voyager du navigateur au serveur sans casser la structure de l'URL.
encodeURI contre encodeURIComponent
JavaScript propose deux fonctions d'encodage, et le mauvais choix est un bug courant. encodeURIComponent encode tout ce qui est réservé et correspond à ce que vous souhaitez pour les valeurs individuelles que vous mettez dans une chaîne de requête, un terme de recherche, une valeur de paramètre, une cible de redirection. encodeURI préserve les caractères de structure d'URL tels que /? & = et est destiné à coder une URL entière tout en la gardant fonctionnelle. La règle générale : utilisez encodeURIComponent pour les valeurs contenues dans une URL et encodeURI uniquement pour une URL entière. Cet outil code les composants, ce dont vous avez besoin la plupart du temps.
Erreurs courantes d'encodage d'URL
Deux bugs dominent. Le double encodage se produit lorsque vous encodez une chaîne déjà encodée, %20 devient %2520, ce qui rompt le lien ; encodez uniquement du texte brut, jamais une URL déjà encodée, et décodez d'abord si vous n'êtes pas sûr. L'autre est l'ambiguïté du signe plus : dans une chaîne de requête, + peut signifier un espace (issu de l'encodage d'un formulaire HTML), mais dans un chemin d'URL, il s'agit d'un plus littéral. En cas de doute, utilisez %20 pour un espace qui est sans ambiguïté partout. N'oubliez pas non plus qu'une valeur non codée et à l'intérieur d'une valeur sera mal interprétée en tant que séparateur de paramètres, divisant ainsi vos données.