在Java中如何对查询参数进行编码以便于放到URL中?我知道这似乎是一个明显且已经被问过的问题。
有两个细节问题我不确定:
- 空格应该被编码为“+”还是“%20”?在chrome中,如果我输入“http://google.com/foo=?bar me”,chrome会将其编码为%20。
- 是否需要/正确将冒号“:”编码为%3B?Chrome没有这样做。
注意:
java.net.URLEncoder.encode
似乎不起作用,它似乎用于对要提交的表单数据进行编码。例如,它将空格编码为+
而不是%20
,并编码了不必要的冒号。java.net.URI
不会对查询参数进行编码。