L'encodage URL (encodage pour cent) est le processus de conversion des caractères non sécurisés dans les URL au format %XX. Les URL ne peuvent contenir qu'un petit sous-ensemble de caractères ASCII (lettres, chiffres, -_.~), tous les autres caractères (y compris le chinois, les espaces, les symboles spéciaux) doivent être encodés avant d'être transmis dans une URL. Par exemple, l'espace est encodé en %20, le caractère chinois « 中 » en %E4%B8%AD.
**encodeURIComponent vs encodeURI** : Ce sont les deux fonctions d'encodage les plus utilisées. encodeURIComponent encode de manière plus exhaustive, y compris les délimiteurs de paramètres comme &, =, ?, elle est donc adaptée pour encoder des valeurs de paramètres individuelles. encodeURI préserve la structure de l'URL (protocole://, chemin, /, ?, #), elle est donc adaptée pour encoder des URL complètes. Une utilisation incorrecte provoque des erreurs d'analyse de paramètres.
**RFC 3986 vs anciennes normes** : RFC 3986 traite le tilde ~ comme un caractère sécurisé ne nécessitant pas d'encodage, alors que les premières normes l'encodent en %7E. L'utilisation de RFC 3986 réduit les échappements inutiles, améliore la lisibilité des URL et évite les problèmes d'analyse de %7E sur certains serveurs.
**Mode Query Only** : Il s'utilise lorsque vous avez uniquement besoin d'encoder les valeurs des paramètres de requête dans l'URL, sans affecter les noms de clés, les signes égaux et les symboles &. Par exemple, ?name=张三 est encodé en ?name=%E5%BC%A0%E4%B8%89, les noms de clés restent lisibles et seules les valeurs sont encodées.
**Surlignage d'encodage** : Surligne en temps réel les caractères au format %XX en couleur ambre pour que les utilisateurs voient d'un coup d'œil quels caractères ont été encodés. Cela aide à comprendre les règles d'encodage : les lettres et chiffres sont généralement des caractères sécurisés qui ne sont pas encodés, seuls le chinois et les symboles spéciaux sont encodés. Tous les calculs sont effectués localement dans le navigateur, aucune donnée n'est envoyée.