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

时间:2016-01-27 16:42:11

标签: javascript http

我有一个像这样的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字符不是?

2 个答案:

答案 0 :(得分:5)

window = QtWidgets.QWidget() # note that no parent is given window.show() 对完整URI进行编码,URI可以包含encodeURI个字符。例如,如果用户输入URI,解决问题的第一步就是在其上调用=

另一方面,如果你是构建URI的那个,并且输入只确定一个字段(例如搜索查询,当给定encodeURI时你要解析E=mc²),那么你不是编码完整的URI,而是编码URI 组件。请使用encodeURIComponent

https://www.google.com/search?q=E%3Dmc%C2%B2

答案 1 :(得分:2)

1010 | 0101 ------ 1111 函数用于编码URI。

此功能对特殊字符进行编码,但:encodeURI()除外(使用, / ? : @ & = + $ #对这些字符进行编码)。

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

消息来源:W3Schools