如何在Java中将查询参数编码为URL?我知道,这似乎是一个显而易见且已经提出的问题。
我不确定有两个微妙之处:
是否有必要/正确将冒号“:”编码为%3B?Chrome没有。 笔记:
java.net.URLEncoder.encode似乎不起作用,似乎是为了对要编码的数据进行表单提交。例如,它将空格编码为,+而不是%20,并编码不必要的冒号。
java.net.URLEncoder.encode
java.net.URI
java.net.URLEncoder.encode(String s, String encoding)也可以提供帮助。它遵循HTML表单编码application/x-www-form-urlencoded。
java.net.URLEncoder.encode(String s, String encoding)
application/x-www-form-urlencoded
URLEncoder.encode(query, "UTF-8");
另一方面,百分比编码(也称为URL编码)使用编码空间%20。冒号是保留字符,因此:在编码后仍将保留冒号。