URL中的转义字符

URL中的转义字符

当URL的参数中出现诸如+,空格,/,?,%,#,&,=等特殊字符串符号时,因为上述字符有特殊含义,导致服务器端无法正确解析参数,如何处理?解决办法:将这些字符转化成服务器可以识别的字符。

如果要在URL中传递特殊符号的原本意义,要对他们进行编码。编码的格式为:%加字符的ASCII码(16进制),例如空格的编码值是"%20"。

URL中特殊符号的用途及普通意义的编码

HTML中的转义字符

转义字符串(Escape Sequence)也称字符实体(Character Entity)。在HTML中,“<”和“>”符号用来表示HTML标签,不能当作普通的符号来使用。如果要在HTML文档中使用这些特殊符号原有的意义,就需要定义对应的转义字符串。当浏览器遇到这类转义字符时就会解释为真实的字符而不是特殊用途。另外有些字符在ASCII字符集中没有文字代号,只能用转义字符串来表示,如回车换行符,退格键等。

js中对字符串进行编码的方法

1.encodeURI()把字符串作为 URI整体进行编码,所以URI组件中的特殊分隔符号(;/:@&=+$?#),encodeURI() 函数不会进行转义。该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( )

  encodeURI("http://www.w3school.com.cn")

  输出http://www.w3school.com.cn

2.encodeURIComponent()把字符串作为 URI 组件的一部分(如path/query/fragment等)进行编码,所以用于分隔 URI 各个部分的特殊分隔符号(;/?:@&=+$,#)也会被转义。返回值中某些字符将被十六进制的转义序列替换。该方法也不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( )

  encodeURIComponent("http://www.w3school.com.cn")

  输出http%3A%2F%2Fwww.w3school.com.cn

3.decodeURI()/decodeURIComponent()解码URI中被转义的字符

  decodeURIComponent(%E4%BD%A0%E5%A5%BDjavascript);

  输出你好javascript

4.escape()用于对字符串进行编码,并返回编码字符串。但目前已不推荐使用该函数对URI进行编码。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值