URL Encoding Encoder & Décoder
Outil en ligne gratuit URL Encoding Encoder & Décoder. Traitement 100% local — vos données ne quittent jamais votre appareil.
Le résultat sera affiché ici...
Entrée → Encoder
Usage Guide
À propos de l'encodage URL
L'encodage URL (également connu sous le nom d'encodage en pourcentage, défini dans RFC 3986) est une méthode d'encodage qui convertit les caractères spéciaux dans les URLs en caractères sûrs. Les URLs n'autorisent qu'un sous-ensemble de caractères ASCII (lettres, chiffres et quelques caractères spéciaux) ; les autres caractères (comme les espaces, les caractères spéciaux) doivent être encodés avant de pouvoir être utilisés dans les URLs. L'encodage URL convertit chaque octet au format %XX, où XX est la représentation hexadécimale de cet octet. L'encodage URL est fondamental pour le développement web et est largement utilisé dans les paramètres URL, les soumissions de formulaires, les requêtes HTTP et autres scénarios.
Étapes d'utilisation
L'encodage et le décodage URL sont très simples :
Règles d'encodage
L'encodage URL suit ces règles :
encodeURIComponent() de JavaScript gère correctement la plupart des cas.Exemples d'encodage courants
Voici les encodages URL pour quelques caractères courants :
Scénarios d'application
L'encodage URL est largement utilisé dans divers scénarios de développement web :
FAQ
Q: Quelle est la différence entre l'encodage URL et Base64 ?
A: L'encodage URL et Base64 sont tous deux utilisés pour gérer les caractères spéciaux, mais à des fins différentes. Encodage URL : 1) Objectif : Permettre aux caractères spéciaux d'être transmis en toute sécurité dans les URLs. 2) Format : %XX (ex. %20). 3) Scénarios : Paramètres URL, soumissions de formulaires. Base64 : 1) Objectif : Convertir des données binaires en format texte. 2) Format : A-Z, a-z, 0-9, +, /. 3) Scénarios : Intégration d'images, JWT, pièces jointes d'e-mail. Conseil de sélection : 1) Paramètres URL : utiliser l'encodage URL. 2) Données binaires : utiliser Base64. 3) Les deux peuvent être combinés (ex. encoder en Base64 puis en URL).
Q: Les espaces doivent-ils être encodés comme %20 ou + ?
A: L'encodage des espaces dépend de l'emplacement dans l'URL. %20 : 1) Utilisé dans la partie chemin de l'URL (ex. /chemin/bonjour%20monde). 2) Utilisé dans les fragments (après #). 3) encodeURIComponent() encode les espaces comme %20. + : 1) Utilisé dans les chaînes de requête (après ?, ex. ?q=bonjour+monde). 2) Le format application/x-www-form-urlencoded utilise +. Recommandation : Utilisez encodeURIComponent() pour encoder uniformément comme %20 ; les serveurs géreront automatiquement + et %20.
Q: Comment utiliser l'encodage URL en JavaScript ?
A: JavaScript fournit trois fonctions d'encodage URL avec des objectifs différents. encodeURIComponent() : Encode les composants URI (valeurs de paramètres), recommandé. Encode tous les caractères spéciaux (sauf A-Z, a-z, 0-9, -, _, ., ~). encodeURI() : Encode les URI complets, préserve les caractères de structure URI (comme :, /, ?, &). Adapté pour encoder des URLs complètes. escape() : Obsolète, non recommandé. Exemple :// Encoder la valeur d'un paramètre (recommandé)
encodeURIComponent('Bonjour Monde'); // 'Bonjour%20Monde'
// Encoder l'URL complète
encodeURI('https://example.com/bonjour monde'); // 'https://example.com/bonjour%20monde'
Décodage : Utilisez decodeURIComponent() ou decodeURI().
Q: Comment les caractères non ASCII sont-ils encodés en URL ?
A: Les caractères non ASCII doivent d'abord être convertis en octets UTF-8, puis encodés au format %XX. Exemple : “é” → octets UTF-8 : C3 A9 → encodage URL : %C3%A9. JavaScript : encodeURIComponent('Héllo') gère la conversion UTF-8 automatiquement. Remarque : 1) Différents encodages produisent des résultats différents. 2) Le serveur doit décoder correctement l'UTF-8. 3) Les applications web modernes utilisent uniformément l'encodage UTF-8.
Q: L'encodage URL augmente-t-il la taille des données ?
A: Oui, l'encodage URL augmente la taille des données, l'augmentation dépendant du type de caractère. Caractères ASCII : 1) Lettres, chiffres : non encodés, taille inchangée. 2) Caractères spéciaux (comme &, =) : encodés sur 3 octets (%XX), augmentation de 200%. Caractères non ASCII : 1) Encodage UTF-8 : 1-4 octets par caractère, chaque octet en %XX (3 octets). Optimisation : 1) Utiliser des requêtes POST pour transmettre de grandes quantités de données. 2) Considérer l'utilisation du format JSON (pas besoin d'encodage URL).
Q: Quelle est la différence entre l'encodage URL et l'encodage d'entités HTML ?
A: L'encodage URL et l'encodage d'entités HTML sont utilisés dans différents scénarios. Encodage URL : 1) Objectif : Transmettre des caractères spéciaux dans les URLs. 2) Format : %XX (ex. %20). 3) Scénarios : Paramètres URL, soumissions de formulaires. Encodage d'entités HTML : 1) Objectif : Afficher des caractères spéciaux en HTML. 2) Format : &nom; (ex. <) ou &#numéro; (ex. <). 3) Scénarios : Contenu HTML, valeurs d'attributs. Exemple : < → Encodage URL : %3C, Entité HTML : < ou <.
Use Cases
Recommandé : Paramètres de requête URL
Passer des paramètres dans les chaînes de requête URL est l'application la plus courante de l'encodage URL. Les chaînes de requête commencent par ?, les paramètres sont séparés par &, et les noms et valeurs de paramètres sont connectés par =. Si les valeurs des paramètres contiennent des caractères spéciaux (comme des espaces, &, =), ils doivent être encodés en URL. L'utilisation de encodeURIComponent() de JavaScript encode correctement les valeurs des paramètres.
- ✅ Utiliser encodeURIComponent() pour encoder les valeurs des paramètres
- ✅ Utiliser l'API URLSearchParams pour construire des chaînes de requête
- ✅ Le serveur utilise les fonctions de décodage correspondantes
- ❌ Ne pas concaténer manuellement les paramètres URL
- 💡 Considérer les requêtes POST pour de grandes quantités de données
Recommandé : Soumission de formulaire HTML
Les formulaires HTML soumettent des données avec l'encodage application/x-www-form-urlencoded, une variante de l'encodage URL. Les données du formulaire sont soumises au format key=value&key=value, avec des espaces encodés comme +, et d'autres caractères spéciaux comme %XX. Les navigateurs modernes gèrent automatiquement l'encodage des formulaires ; les développeurs n'ont généralement pas besoin d'encoder manuellement. Cependant, lors de la construction de données de formulaire avec JavaScript (comme l'API Fetch), un encodage manuel est nécessaire.
- ✅ Utiliser l'API FormData pour gérer automatiquement l'encodage
- ✅ Utiliser URLSearchParams pour construire des données de formulaire
- ✅ Le serveur décode correctement les données du formulaire
- 💡 Pour les téléchargements de fichiers, utiliser multipart/form-data
Recommandé : Paramètres de chemin API RESTful
Dans les APIs RESTful, les identifiants de ressources peuvent contenir des caractères spéciaux (comme des espaces, des barres obliques), nécessitant un encodage URL. Par exemple, /utilisateurs/Jean Dupont doit être encodé comme /utilisateurs/Jean%20Dupont. Utilisez encodeURIComponent() pour encoder les paramètres de chemin, garantissant que l'API peut analyser correctement les identifiants de ressources.
- ✅ Utiliser encodeURIComponent() pour encoder les paramètres de chemin
- ✅ Le serveur décode correctement les paramètres de chemin
- ✅ Envisager d'utiliser des IDs plutôt que des noms comme identifiants de ressources
- 💡 Utiliser des bibliothèques de modèles URL (comme path-to-regexp)
Recommandé : Authentification OAuth
Des paramètres comme redirect_uri et state dans les flux d'authentification OAuth doivent être encodés en URL. Par exemple, redirect_uri est généralement une URL complète contenant des paramètres de requête, qui doit être encodée dans son ensemble avant d'être passée comme valeur de paramètre. Utilisez encodeURIComponent() pour encoder ces paramètres, garantissant que le serveur OAuth peut les analyser correctement.
- ✅ Utiliser encodeURIComponent() pour encoder redirect_uri
- ✅ Utiliser encodeURIComponent() pour encoder le paramètre state
- ✅ Vérifier que le redirect_uri décodé est valide
- 💡 Utiliser des bibliothèques OAuth (comme Passport.js) pour la gestion automatique
Recommandé : Requêtes de moteurs de recherche
Les mots-clés de recherche doivent être encodés en URL lorsqu'ils sont passés dans des URLs. Par exemple, la recherche Google pour “bonjour monde” a l'URL https://www.google.com/search?q=bonjour+monde. Les moteurs de recherche gèrent automatiquement l'encodage URL ; les utilisateurs n'ont généralement pas besoin d'encoder manuellement. Cependant, lors de la construction d'URLs de recherche (comme les redirections automatiques), encodeURIComponent() doit être utilisé pour encoder les mots-clés de recherche.
- ✅ Utiliser encodeURIComponent() pour encoder les mots-clés de recherche
- ✅ Gérer plusieurs mots-clés (séparés par des espaces ou +)
- ✅ Envisager d'utiliser les APIs des moteurs de recherche
- 💡 Utiliser URLSearchParams pour construire des URLs de recherche
Recommandé : Services de raccourcissement d'URL
Les services de raccourcissement d'URL (comme bit.ly) doivent encoder les longues URLs avant de les stocker et de les transmettre. Les longues URLs peuvent contenir des caractères spéciaux (comme des paramètres de requête), nécessitant un encodage URL. Utilisez encodeURIComponent() pour encoder les longues URLs, garantissant que le service de raccourcissement peut les analyser et les restaurer correctement. Notez que les services de raccourcissement encodent généralement à nouveau l'URL encodée, donc le décodage peut nécessiter plusieurs passes.
- ✅ Utiliser encodeURIComponent() pour encoder les longues URLs
- ✅ Vérifier que les URLs décodées sont valides
- ✅ Gérer les cas d'encodage multiple
- 💡 Utiliser les APIs des services de raccourcissement
Recommandations de meilleures pratiques
- Utiliser encodeURIComponent() pour encoder les valeurs des paramètres URL, utiliser encodeURI() pour encoder les URLs complètes.
- Les espaces dans les chaînes de requête sont encodés comme +, dans les chemins comme %20 ; utiliser encodeURIComponent() pour encoder uniformément comme %20.
- Les caractères non ASCII utilisent l'encodage UTF-8 ; s'assurer que le serveur décode correctement.
- Ne pas concaténer manuellement les paramètres URL ; utiliser l'API URLSearchParams ou l'API FormData pour la gestion automatique de l'encodage.
- L'encodage URL augmente la taille des données ; pour de grandes quantités de données, utiliser des requêtes POST ou le format JSON.
- Vérifier que les URLs décodées sont valides pour prévenir les attaques par injection URL.