我尝试使用 Ruby 的 url_encode(此处为文档。)
它编码http://www.google.com
为http%3A%2F%2Fwww.google.com
. 但事实证明,我无法通过浏览器打开后者。如果是这样,这个功能有什么用?当它编码的 URL 甚至无法打开时,它有什么用?
例如,您可以使用url_encode
对 GET 请求的键/值进行编码。
下面是一个 SO 搜索查询 URL 编码后的示例:
https://stackoverflow.com/questions/tagged/c%23+or+.net+or+asp.net
如您所见,url 编码似乎只应用于 URL 的最后一部分,在最后一个斜杠之后。
通常,您不能在整个 URL 上使用 url_encode,否则您还将对普通 URL 中的特殊字符进行编码,例如示例中的 ://。
您可以在此处查看解释其工作原理的教程:http ://www.permadi.com/tutorial/urlEncoding/
一个典型的用途是 HTTP GET方法,您需要一个查询字符串。
查询字符串 1:
valudA=john&valueB=john2
实际值服务器获取:
值A:“约翰”
价值B:“约翰2”
url_encode用于使键值对能够存储包含一些非 ASCII 编码字符(如空格和特殊字符)的字符串。
假设 valueB 将存储我的名字,代码 4 j,你需要对其进行编码,因为有一些空格。
url_encode("code 4 j")
code%204%20j
查询字符串 2:
值A=约翰&值B=代码%204%20j
实际值服务器获取: