js encode et décode l'URL (trois façons)

méthode illustrer valeur de retour
échapper(Chaîne) Encodez une chaîne en remplaçant certains caractères par des séquences d'échappement, à l'exception des lettres ASCII, des chiffres et des signes de ponctuation "@ * _ + - . /" Renvoie une chaîne codée Unicode
annuler l'évasion (Chaîne) Décoder une chaîne codée à l'aide de escape()
encodeURI (Chaîne) L'URI est codée en échappant certains caractères. En plus des symboles courants (caractères ASCII), d'autres symboles ayant des significations particulières dans l'URL "; / ? : @ & = + $ , #" ne sont pas codés. Chaîne de sortie au format UTF-8
décoderURI (Chaîne) Décoder une chaîne codée à l'aide de la méthode encodeURI()
encodeURIComponent (Chaîne) Le codage de l'URI via certains caractères d'échappement compilera tout (y compris les caractères spéciaux). Les caractères ASCII ne sont pas codés. Les caractères chinois et spéciaux dans les paramètres peuvent être échappés. Chaîne de sortie au format UTF-8
deencodeURIComponent (Chaîne) Décoder une chaîne codée à l'aide de la méthode encodeURIComponent()

Le premier type : évasion et désévasion

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.

Sa règle spécifique est d'encoder tous les caractères à l'exception des lettres ASCII, des chiffres et des signes de ponctuation "@ * _ + - . /". Les symboles entre u0000 et u00ff sont convertis au format %xx et les autres symboles sont convertis au format %uxxxx. La fonction de décodage correspondante est unescape().

Il y a deux autres points à noter :

  1. Tout d’abord, quel que soit l’encodage d’origine de la page Web, une fois encodée par Javascript, elle devient des caractères Unicode. En d'autres termes, l'entrée et la sortie de la fonction Javascipt sont des caractères Unicode par défaut. Cela s'applique également aux deux fonctions suivantes.
  2. Deuxièmement, escape() ne code pas "+" . Mais nous savons que lorsque la page Web soumet le formulaire, s'il y a des espaces, ils seront convertis en caractères +. Lorsque le serveur traite les données, il traitera le signe + dans les espaces. Soyez donc prudent lorsque vous l’utilisez.
escape()编码:

const time = 2022-01-09
const tile = '63元黑糖颗粒固饮'
let url = "http://localhost:8080/index.html?time="+escape(time)+"&title="+escape(tile)
地址栏显示结果:
    "http://localhost:8080/index.html?time=2022-01-09&title=63%u5143%u9ED1%u7CD6%u9897%u7C92%u56FA%u996E"
unescape()解码:

let url = "http://localhost:8080/index.html?time="+unescape(2022-01-09)+"&title="+unescape(63%u5143%u9ED1%u7CD6%u9897%u7C92%u56FA%u996E)
地址栏显示结果:
   "http://localhost:8080/index.html?time=2022-01-09&title=63元黑糖颗粒固饮"

Le deuxième type : encodeURI et decodeURI

encodeURI() est la fonction Javascript qui est réellement utilisée pour coder les URL.

Il est utilisé pour coder individuellement les composants de l'URL. En plus des symboles courants, d'autres symboles ayant des significations particulières dans l'URL "; / ? : @ & = + $, #" ne sont pas codés. Après le codage, il génère la forme UTF-8 du symbole et ajoute % avant chaque octet, puis utilise une séquence d'échappement hexadécimale (sous la forme %xx) pour générer 1 octet et 2 octets ou des caractères de 4 octets à coder.
Sa fonction de décodage correspondante est decodeURI()

Notez qu'il n'encode pas les guillemets simples' .

let url = "http://localhost:8080/index.html?time=2022-01-09&title=63元黑糖颗粒固饮"

encodeURI()编码:
let encodeURI_url = encodeURI(url) = "http://localhost:8080/index.html?time=2022-01-09&title=63%E5%85%83%E9%BB%91%E7%B3%96%E9%A2%97%E7%B2%92%E5%9B%BA%E9%A5%AE"

decodeURI()解码:
decodeURI(encodeURI_url )= “http://localhost:8080/index.html?time=2022-01-09&title=63元黑糖颗粒固饮”

Le troisième type : encodeURIComponent et decodeURIComponent

La différence avec encodeURI() est qu'il est utilisé pour encoder l'intégralité de l'URL. "; / ? : @ & = + $, #" , ces symboles qui ne sont pas encodés en encodeURI() seront tous encodés en encodeURIComponent().
Sa fonction de décodage correspondante est decodeURIComponent().

let url = "http://localhost:8080/index.html?time=2022-01-09&title=63元黑糖颗粒固饮"

encodeURIComponent ()编码:
let encodeURIComponent _url = encodeURIComponent (url) = http%3A%2F%2Flocalhost%3A8080%2Findex.html%3Ftime%3D2022-01-09%26title%3D63%E5%85%83%E9%BB%91%E7%B3%96%E9%A2%97%E7%B2%92%E5%9B%BA%E9%A5%AE

decodeURIComponent()解码:
decodeURIComponent(encodeURIComponent _url )= “http://localhost:8080/index.html?time=2022-01-09&title=63元黑糖颗粒固饮”

Je suppose que tu aimes

Origine blog.csdn.net/muzidigbig/article/details/127750299
conseillé
Classement