简单了解escape,encodeURI,encodeURIComponent

encodeURI()和decodeURI()

encodeURI用于编码URI,而decodeURI对应解码URI,encodeURI和decodeURI函数操作的是完整的URI,他不会编码URI中的任何保留字符。

encodeURIComponent()和decodeURIComponent()

encodeURIComponent和decodeURIComponent函数操作的是组成URI的个别组件,这俩函数假定任何保留字符都代表普通文本,所以必须编码他们,所以他们(保留字符)出现在一个完整URI中的组件里面时不会被

escape()和unescape()

escape()和unescape()用于字符串的编码和解码,该方法不会对ASCII字母和数字进行编码,也不会对下面的这些ASCII标点符号进行编码:*@-_+./。其他所有字符都会被转义序列替换。

escape和unescape方法不能用来对统一资源标示符(URI)进行编码和解码,对其编码/解码应使用encodeURI和decodeURI方法,或encodeURIComponent/decodeURLComponent方法。

escape/unescape方法已经被废弃,不推荐使用

encodeURI()和encodeURIComponent()的区别

encodeURI()和encodeURIComponent()两者都是用于编码URL,唯一区别就是编码的字符范围不同, encodeURI()方法不会对下列字符编码:

ASCII字母,数字,~!@#$&*()=:/,;?+'

encodeURIComponent方法不会对下列字符编码:

ASCII字母,数字,~!*()'

所以encodeURIComponent比encodeURI编码的范围更大。 举个例子

var str = 'http://'
encodeURIComponent(str);
// "http%3A%2F%2F"
encodeURI(str);
// http://
复制代码

上面的例子可以看出,encodeURIComponent方法会对://字符进行编码,但是encodeURI不会。

encodeURI解决URL传递时的中文问题
方法一

页面端发出的数据作一次encodeURI,服务器端进行转移成UTF-8;

方法二

页面端发出的数据作两次encodeURI

URI的组成形式

一个URI是由组件分隔符分割的组件序列组成,基本形式:

Scheme:First/Second;Third ? Fourth 其中斜体的名称代表组建。 “:”,"/";";","?"是当作分隔符的保留字符。

URI,URL,URN的区别

URI:Uniform Resource Identifier 统一资源标识符; URL:Uniform Resource Locator 统一资源定位符; URN:Uniform Resource Name 统一资源名称;

其中,URL,URN是URI的子集

URL代表资源的路径地址,而URN代表资源的名称。

转载于:https://juejin.im/post/5ca4803ae51d452c02246dd6

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值