Maison > Article > interface Web > Comment encoder et convertir une URL en javascript
Comment utiliser JavaScript pour encoder des URL : 1. Utilisez la fonction encodeURI() pour encoder une chaîne en tant qu'URI ; 2. Utilisez la fonction encodeURIComponent() pour encoder une chaîne en tant que composant URI.
L'environnement d'exploitation de ce tutoriel : système Windows 7, JavaScript version 1.8.5, ordinateur Dell G3.
Dans le projet, l'url a rencontré un problème d'échec d'analyse de l'objet tableau lors du passage des paramètres. Il a été résolu par transcodage, mais le principe réel n'était pas clair, j'ai donc étudié le transcodage et le décodage JS.
Il existe trois fonctions dans le langage Javascript utilisées pour l'encodage.
escape()
encodeURIComponent()
Différences entre trois méthodes d'encodage :
escape et unescape :
escape : impossible Utilisé directement pour l'encodage d'URL, sa véritable fonction est de renvoyer la valeur d'encodage Unicode d'un caractère, afin que la chaîne spécifiée puisse être encodée.
À l'exception des lettres ASCII, des chiffres et des signes de ponctuation "@ * _ + - . /", tous les espaces, signes de ponctuation, caractères spéciaux et autres caractères non-ASCII seront convertis au format %xx (nombres hexadécimaux). codage. Autrement dit, escape ne code pas les caractères a 69 caractères : *, +, -, ., /, @, _, 0-9, a-z, A-Z. Les fonctions de décodage correspondantes pour
sont unescape()
encodeURI et decodeURI :
**encodeURI()** est la fonction Javascript qui est réellement utilisée pour encoder les URL. L'URL entière est codée En plus des symboles courants, les symboles ayant une signification particulière dans l'URL "; / ? : @ & = + $ , #" ne sont pas codés. Après le codage, affichez la forme UTF-8 du symbole et ajoutez % avant chaque octet. Notez que encodeURI() n'encode pas les guillemets simples. La fonction de décodage correspondant à
est decodeURI().
encodeURIComponent et decodeURIComponent
encodeURIComponent sont utilisés pour encoder individuellement les composants d'une URL , plutôt que d'encoder l'intégralité de l'URL. Par conséquent, les symboles "; / ? : @ & = + $ , #" qui ne sont pas codés dans encodeURI() seront tous codés dans encodeURIComponent().
Parce que encodeURIComponent() encodera plus de caractères, tels que "/" et d'autres caractères. Si la chaîne contient plusieurs parties de l'URI, celle-ci ne peut pas être utilisée pour l'encodage. Sinon, l'URL ne s'affichera pas correctement après le codage du caractère "/". Par conséquent, lors du passage de paramètres, les paramètres contenant des caractères spéciaux peuvent provoquer des interruptions.
En résumé :
**escape()** La fonction est utilisée par js pour encoder des chaînes. Rarement utilisé
**encodeURI()** est utilisé pour accéder à l'URL entière
**encodeURIComponent()** est utilisé pour transmettre des paramètres. Les paramètres contenant des caractères spéciaux peuvent provoquer des interruptions.
[Apprentissage recommandé : Tutoriel JavaScript avancé]
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!