Encodeur / Décodeur d'URL

Encodez ou décodez des URLs en pourcentage. Plus un analyseur d'URL complet.

encodeURIComponent — encode tout y compris : / ? # @ — pour les paramètres de requête et les segments de chemin.

Comment fonctionne l'encodage d'URL

L'encodage en pourcentage (aussi appelé encodage d'URL) remplace les caractères non sûrs par un signe % suivi de deux chiffres hexadécimaux représentant la valeur de l'octet. Par exemple, un espace devient %20 et é (U+00E9) devient %C3%A9 en UTF-8. Cela permet à n'importe quel caractère Unicode d'apparaître en toute sécurité dans une URL.

Les deux fonctions JavaScript se comportent différemment. encodeURIComponent est la plus stricte : elle encode tout sauf les lettres, chiffres et - _ . ! ~ * ' ( ). Utilisez-la pour les valeurs de chaîne de requête et les segments de chemin. encodeURI est permissive : elle laisse les caractères structurels : / ? # [ ] @ ! $ & ' ( ) * + , ; = intacts car elle suppose que vous passez une URL complète.

Le mode analyseur d'URL utilise l'API URL intégrée au navigateur (standard WHATWG URL) pour décomposer toute URL valide en protocole, hôte, chemin, paramètres de requête et fragment — affiché sous forme de tableau pour une inspection facile.

Sources

La syntaxe d'URL et l'encodage en pourcentage sont formellement définis dans la RFC 3986 — Identificateur de ressource uniforme (URI) : Syntaxe générique (T. Berners-Lee, R. Fielding, L. Masinter, janvier 2005, rfc-editor.org/rfc/rfc3986). La section 2.1 définit l'encodage en pourcentage ; la section 3 définit la syntaxe URI générique (schéma, autorité, chemin, requête, fragment). L'analyseur d'URL utilise le standard WHATWG URL implémenté nativement dans tous les navigateurs modernes.

Ce qui est là — et ce qui ne l'est pas

Encodage/décodage bidirectionnel, une explication claire de quand utiliser encodeURIComponent vs encodeURI, correction Unicode, un bouton d'inversion et un analyseur d'URL qui décompose toute URL en un tableau propre de composants incluant tous les paramètres de requête individuellement.

Ce qui n'est pas là : l'encodage par lot de plusieurs valeurs à la fois, un constructeur de chaîne de requête (construire une URL depuis zéro en remplissant des champs) ou la comparaison côte à côte des modes d'encodage. Ces fonctionnalités seraient utiles mais ajoutent assez de complexité UI pour appartenir à un outil plus spécialisé.

Questions fréquentes

Quelle est la différence entre encodeURIComponent et encodeURI ?
encodeURIComponent encode tous les caractères sauf les lettres, chiffres et - _ . ! ~ * ' ( ). Utilisez-la pour les valeurs individuelles de paramètres de requête et les segments de chemin. encodeURI laisse les caractères structurels d'URL (: / ? # @ etc.) non encodés car elle suppose que vous passez une URL complète navigable. Encoder une URL complète avec encodeURIComponent la casserait — les barres obliques et les deux-points deviendraient %2F et %3A.
Que signifie % dans une URL ?
Le caractère % est le préfixe d'échappement dans l'encodage en pourcentage. Il est toujours suivi de deux chiffres hexadécimaux représentant une valeur d'octet. Par exemple, %20 est l'octet 0x20 (décimal 32), qui est le caractère espace ASCII. Pour les caractères Unicode en dehors de l'ASCII, plusieurs octets encodés en pourcentage représentent l'encodage UTF-8 de ce caractère — ex. %C3%A9 pour é.
Quand ne pas encoder une URL ?
N'utilisez pas encodeURI ou encodeURIComponent sur une URL que vous stockez comme lien — les navigateurs modernes gèrent automatiquement l'UTF-8 dans les URLs lors de la navigation. Encodez seulement quand : vous construisez une URL par programmation pour la passer à un appel fetch(), vous construisez des paramètres de requête pour une API, ou vous intégrez une URL dans une autre URL comme valeur de paramètre.
Où l'encodage en pourcentage est-il défini ?
RFC 3986 — « Identificateur de ressource uniforme (URI) : Syntaxe générique » (Berners-Lee, Fielding, Masinter, janvier 2005). La section 2.1 définit l'encodage en pourcentage. La section 3 définit la syntaxe complète des composants URI. Disponible sur rfc-editor.org/rfc/rfc3986.
Cela gère-t-il correctement l'Unicode ?
Oui. La fonction JavaScript encodeURIComponent convertit les caractères Unicode en leur représentation en octets UTF-8 avant d'encoder chaque octet en pourcentage. Par exemple, le caractère japonais 日 (U+65E5) s'encode en %E6%97%A5 — trois octets représentant l'encodage UTF-8 de ce point de code. decodeURIComponent inverse correctement ce processus.