Maison > Article > interface Web > Comment javascript implémente-t-il le transcodage et le décodage d’URL ?
Ce que cet article vous apporte, c'est comment JavaScript implémente le transcodage et le décodage d'URL ? Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il vous sera utile.
1. escape et unescape
escape() ne peut pas être utilisé directement pour l'encodage d'URL. Sa véritable fonction est de renvoyer la valeur codée Unicode d'un caractère.
Utilisation du jeu de caractères Unicode pour encoder la chaîne spécifiée sauf 0-255. Tous les espaces, signes de ponctuation, caractères spéciaux et autres caractères non-ASCII associés seront convertis en codage de caractères au format %xx (xx est égal au nombre hexadécimal du codage de caractères dans la table des jeux de caractères). Par exemple, l'encodage correspondant au caractère espace est %20.
Escape n'encode pas 69 caractères : *, +, -, ., /, @, _, 0-9, a-z, A-Z.
La fonction escape() est utilisée pour encoder des chaînes en js et n'est pas couramment utilisée.
Encodage :
escape('http://www.baidu.com?name=zhang@xiao@jie&order=1')
Résultats : "http%3A//www.baidu.com%3Fname%3Dzhang@xiao@jie%26order%3D1"
escape ("Zhang")
Résultat : "%u5F20"
Décodage :
unescape("http%3A//www.baidu.com%3Fname%3Dzhang@xiao@jie%26order%3D1")
Résultat : "http://www.baidu.com?name=zhang @xiao@jie&order=1"
unescape("%u5F20")
Résultat : "张"
2. encodeURI et decodeURI
mettre le URI La chaîne est convertie en diverses chaînes d'échappement à l'aide du format de codage UTF-8.
Il y a 82 caractères non codés dans encodeURI : !, #, $, &, ', (,), *, +,,, -,., /, :,;, =,?, @,_,~ , 0-9, a-z, A-Z
encodeURI() est utilisé pour encoder l'url entière
Codage :
encodeURI('http://www.baidu.com?name=zhang@xiao@jie&order=1')
Résultat : "http://www. baidu. com?name=zhang@xiao@jie&order=1"
Décodage :
decodeURI("http%3A//www.baidu.com%3Fname%3Dzhang@xiao@jie%26order%3D1")
Résultat : "http%3A//www.baidu.com%3Fname%3Dzhang@xiao @jie %26order%3D1"
3. La différence entre encodeURIComponent et decodeURIComponent
et encodeURI() est qu'il est utilisé pour encoder des composants individuels de l'URL plutôt que d'encoder l'URL entière. .
Par conséquent, " ; /? : @ & = + $ , #", ces symboles qui ne sont pas codés dans encodeURI() seront tous codés dans encodeURIComponent(). Quant à la méthode de codage spécifique, les deux sont identiques. Convertissez la chaîne URI au format d'échappement en utilisant le format de codage UTF-8 String.
encodeURIComponent() est utilisé pour transmettre des paramètres. Les paramètres contenant des caractères spéciaux peuvent provoquer des interruptions
Encodage :
encodeURIComponent('http://www.baidu.com?name=zhang@xiao@jie&order=1')
Résultat : "http%. 3A%2F%2Fwww. .baidu.com%3Fname%3Dzhang%40xiao%40jie%26order%3D1"
Décodage :
decodeURIComponent("http%3A%2F%2Fwww.baidu.com%3Fname%3Dzhang%40xiao%40jie%26order%3D1")
Résultat : "http://www .baidu.com? name=zhang@xiao@jie&order=1"
Résumé :
escape() ne peut pas être utilisé directement pour l'encodage d'URL. Sa véritable fonction est de renvoyer l'encodage Unicode d'un caractère. Valeur. Par exemple, le résultat renvoyé de "Spring Festival" est %u6625%u8282, escape() n'encode pas "+".
est principalement utilisé pour l'encodage des caractères chinois et l'utilisation de
encodeURI( n'est plus recommandé. ) est la fonction en Javascript qui est réellement utilisée pour encoder l'URL encode l'intégralité de l'adresse URL, mais la fonction de décodage correspondante n'encode pas les symboles de signification particulière "; / ? : @ & = + $ , #". Oui : decodeURI().
peut encoder "; / : @ & = + $, #". La fonction de décodage correspondante est
<.>Je souhaite transmettre l'URL avec une esperluette, alors utilisez encodeURIComponent()
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!