Encodeur/Décodeur URL FAQ
Encoder et décoder les chaînes URL
Qu'est-ce que l'encodage URL ?
L'encodage URL (encodage percent) remplace les caractères spéciaux par %XX où XX est la valeur ASCII/UTF-8 hexadécimale. L'espace devient %20, & devient %26. Cela permet aux caractères spéciaux d'être transmis en toute sécurité dans les URL sans déclencher leurs significations réservées.
Quand devrais-je encoder l'URL ?
Encodez toute entrée utilisateur placée dans les URL : termes de recherche, noms, descriptions ou toute chaîne contrôlée par l'utilisateur. N'encodez pas des choses comme :/?dans la partie de base d'une URL - seulement les valeurs. Utilisez encodeURIComponent() en JavaScript pour les valeurs de paramètres.
Quelle est la différence entre encodeURI et encodeURIComponent ?
encodeURI() laisse les caractères réservés (:/?&=) non encodés, adapté aux URL entières. encodeURIComponent() encode tout sauf alphanumérique et -_.!~*'(), adapté aux valeurs de paramètres. Pour la plupart des cas d'usage, vous voulez encodeURIComponent pour les valeurs.
Pourquoi est-ce que je vois + au lieu de %20 pour les espaces ?
Historiquement, les espaces dans les chaînes de requête étaient encodés comme + (application/x-www-form-urlencoded). L'encodage URL moderne préfère %20 partout. Les deux fonctionnent dans les chaînes de requête, mais seul %20 fonctionne dans les chemins d'URL. Notre outil utilise %20 pour une compatibilité universelle.
Comment gérer les caractères non-ASCII ?
Les caractères non-ASCII (ü, 中, و) sont d'abord convertis en octets UTF-8, puis chaque octet est encodé en pourcent. Le ü devient %C3%BC (octets UTF-8 C3 BC). L'encodage URL moderne utilise toujours UTF-8 pour les caractères internationaux.
Qu'est-ce que le double encodage ?
Le double encodage se produit lorsque vous encodez une chaîne déjà encodée : %20 devient %2520. Cela casse les URL - elles affichent littéralement %20 au lieu de l'interpréter comme un espace. Décodez toujours avant de réencoder si vous n'êtes pas sûr que l'entrée soit déjà encodée.