[英]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.