CoderTools

Encodeur/Décodeur d'URL | CoderTools

Description

À propos de l'encodage d'URL

L'encodage d'URL, également connu sous le nom d'encodage par pourcentage, est un mécanisme pour encoder l'information dans un identifiant de ressource uniforme (URI) dans certaines circonstances. Il consiste à substituer certains caractères par un ou plusieurs triplets de caractères composés du caractère pourcent '%' suivi de deux chiffres hexadécimaux.

L'encodage d'URL est nécessaire lorsqu'une URL contient des caractères qui ne sont pas autorisés dans les URLs, ou lorsque les caractères ont une signification spéciale dans la syntaxe URL. Cela garantit que les URLs peuvent être transmises en toute sécurité sur internet, quels que soient les caractères qu'elles contiennent.

Remarque : Différentes parties d'une URL (schéma, autorité, chemin, requête, fragment) ont des règles d'encodage différentes. Cet outil utilise l'encodage URL standard adapté aux paramètres de requête et aux données de formulaire.

Caractères courants et leurs encodages

Caractère Encodé URL Description
Space %20 Caractère espace
! %21 Point d'exclamation
" %22 Guillemet
# %23 Dièse/Identifiant de fragment
% %25 Caractère pourcentage
& %26 Esperluette/Séparateur de requête
+ %2B Signe plus
= %3D Signe égal/Séparateur de valeur de requête
? %3F Point d'interrogation/Indicateur de requête

Cas d'usage courants

Exemples

Exemple 1 : Paramètre de requête

Original: Hello World!

Encoded: Hello%20World%21

Exemple 2 : Adresse email

Original: [email protected]

Encoded: user%40example.com

Exemple 3 : Requête complexe

Original: search=JavaScript & Node.js

Encoded: search%3DJavaScript%20%26%20Node.js

Références et lectures complémentaires

Bonnes pratiques

Utilisez encodeURIComponent() pour les Paramètres de Requête

En JavaScript, utilisez encodeURIComponent() pour les valeurs individuelles des paramètres de requête. Elle encode tous les caractères spéciaux y compris &, = et ?. N'utilisez pas encodeURI() pour cela.

Ne Pas Double-Encoder

Encoder des URLs déjà encodées crée des liens cassés (ex : %25 au lieu de %). Vérifiez si les données sont déjà encodées avant d'appliquer un nouvel encodage.

Encoder Uniquement Quand C'est Nécessaire

Les caractères alphanumériques (A-Z, a-z, 0-9) et -_.~ n'ont pas besoin d'encodage. Tout encoder gaspille la bande passante et réduit la lisibilité des URLs.

Utiliser les Fonctions de Bibliothèque Standard

N'implémentez pas l'encodage URL manuellement. Utilisez les fonctions intégrées : encodeURIComponent() (JS), urllib.parse.quote() (Python), urlencode() (PHP).

Gérer les Signes Plus avec Précaution

L'espace peut être encodé comme + (encodage formulaire) ou %20 (encodage URL). Sachez ce que votre système attend. La plupart des APIs préfèrent %20 pour les espaces.

Encoder à la Source

Encodez les données lors de la construction des URLs, pas après. Construire une chaîne URL puis encoder le tout casse la structure de l'URL.

Dépannage

Pourquoi mon URL décodée contient-elle encore des séquences %XX ?

L'URL peut être double-encodée. Essayez de décoder à nouveau. Cela se produit quand des URLs déjà encodées sont encodées une seconde fois.

Pourquoi mon signe + devient-il un espace ?

Dans les données de formulaire (application/x-www-form-urlencoded), + représente un espace. Dans les URLs, + doit être encodé comme %2B si vous voulez un signe plus littéral.

Pourquoi mon serveur reçoit-il des caractères corrompus ?

Incompatibilité d'encodage. Assurez-vous que le client et le serveur attendent des valeurs encodées en UTF-8. Les caractères non-ASCII doivent être encodés en UTF-8 avant l'encodage par pourcentage.

Pourquoi encodeURI() n'encode-t-elle pas mes paramètres de requête ?

encodeURI() est pour les URIs entières et préserve les caractères spéciaux comme &, =, ?. Utilisez encodeURIComponent() pour les valeurs de paramètres individuelles.