前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >decodeURI与decodeURIComponent区别

decodeURI与decodeURIComponent区别

作者头像
全栈程序员站长
发布2022-09-16 11:34:06
9500
发布2022-09-16 11:34:06
举报
文章被收录于专栏:全栈程序员必看

1. 概念:

URI: Uniform ResourceIdentifiers,通用资源标识符

Global对象的encodeURI()和encodeURIComponent()方法可以对URI进行编码,以便发送给浏览器。有效的URI中不能包含某些字符,例如空格。而这URI编码方法就可以对URI进行编码,它们用特殊的UTF-8编码替换所有无效的字 符,从而让浏览器能够接受和理解。

其中encodeURI()主要用于整个URI(例如,http://www.jxbh.cn/illegal value.htm),而encode-URIComponent()主要用于对URI中的某一段(例如前面URI中的illegal value.htm)进行编码。它们的主要区别在于,encodeURI()不会对本身属于URI的特殊字符进行编码,例如冒号、正斜杠、问号和井字号;而encodeURIComponent()则会对它发现的任何非标准字符进行编码。来看下面的例子: var uri=”http://www.jxbh.cn/illegal value.htm#start”; //”http: //www.jxbh.cn/illegal%20value .htm#s tart” alert(encodeURI (uri)): //”http% 3A%2F%2Fwww.jxbh.cn%2 Fillegal%2 0value. htm%23 start” alert( encodaURIComponent (uri));

使用encodeURI()编码后的结果是除了空格之外的其他字符都原封不动,只有空格被替换成了%20。而encodeURIComponent()方法则会使用对应的编码替换所有非字母数字字符。这也正是可以对整个URI使用encodeURI(),而只能对附加在现有URI后面的字符串使用encodeURIComponent()的原因所在。一般来说,我们使用encodeURIComponent()方法的时候要比使用encodeURI()更多,因为在实践中更常见的是对查询字符串参数而不是对基础URL进行编码.

最好使用decodeURIComponent()进行解码

防止中文乱码方法: decodeURIComponent(数据,true)

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/166755.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 概念:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档