url中的特殊字符及转义符、ASCII、encodeURIComponent、decodeURIComponent

文章目录

  • 前言
  • 字符
  • encodeURIComponent
  • decodeURIComponent


前言

有些符号在URL中不能直接传递,如果要在URL中传递特殊符号,那么需要使用编码。
编码的格式为: %加字符的ASCII码,即一个百分号%后面跟对应字符的ASCII(16进制)码值。
如果不使用转义字符,这些编码就会当URL中定义的特殊字符处理。


字符

序号 字符 转义符 描述
1 + %2B URL中的+号表示空格
2 空格 %20 URL中的空格可以用+号或者编码
3 / %2F URL中的/表示目录和子目录
4 ? %3F 分隔实际的URL和参数
5 % %25 指定特殊字符
6 # %23 表示书签
7 & %26 URL中指定的参数间的分隔符
8 = %3D URL中指定参数的值

encodeURIComponent

// Encodes characters such as ?,=,/,&,:
console.log(`?x=${encodeURIComponent('test?')}`);
// Expected output: "?x=test%3F"

console.log(`?x=${encodeURIComponent('шеллы')}`);
// Expected output: "?x=%D1%88%D0%B5%D0%BB%D0%BB%D1%8B"

w3school

encodeURIComponent函数对URI组件进行编码。
此函数对特殊字符进行编码。此外,它还对以下字符进行编码。
,/?:@&=+$#
请使用decodeURIComponent函数对编码的URI组件进行解码。


MDN

encodeURIComponent函数通过将特定字符的每个实例替换成代表字符的UTF-8编码的一个、两个、三个或四个转义序列来编码URI(只有由两个“代理”字符组成的字符会被编码为四个转义序列)。与encodeURI相比,此函数会编码更多的字符,包括URI语法的一部分。


decodeURIComponent

console.log(decodeURIComponent("JavaScript_%D1%88%D0%B5%D0%BB%D0%BB%D1%8B"));
// "JavaScript_шеллы"

w3school

decodeURIComponent函数对URI组件进行解码。
请使用encodeURIComponent函数对URI组件进行编码。


MDN

decodeURIComponent方法用于解码由encodeURIComponent方法或者其他类似方法编码的部分统一资源标识符(URI)。

你可能感兴趣的:(web前端,JavaScript,开发语言,前端,web,javascript,开发语言)