繁体   English   中英

encodeURI没有逃脱`equals` - 为什么?

[英]encodeURI doesn't escape `equals` - why?

我有一个这样的URI:

http://client.dev/dap/module/hdfs-web/api/v1.0/clusters/Cluster%201%20-%20CDH4?operation=copy&to=/user/hdfs/year=2016/partial.txt&overwrite=true

我使用encodeURI函数来转义字符串。 我想知道为什么空格用%20编码而equals字符不是?

encodeURI对完整URI进行编码,URI可以包含=字符。 例如,如果用户键入URI,解决它的第一步就是在其上调用encodeURI

另一方面,如果您是构建URI的那个,并且输入只确定一个字段(例如搜索查询,当给定E=mc²您想要解析https://www.google.com/search?q=E%3Dmc%C2%B2 ),那么您不是编码完整的URI,而是编码URI 组件 使用encodeURIComponent

> encodeURIComponent('= ')
'%3D%20'

encodeURI()函数用于编码URI。

此函数对特殊字符进行编码,除了: , / ? : @ & = + $ # , / ? : @ & = + $ # (使用encodeURIComponent()对这些字符进行编码)。

提示:使用decodeURI()函数解码编码的URI。

消息来源: W3Schools

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM