应该使用什么类型的Charset URL编码?

时间:2013-01-29 08:01:34

标签: java http url

我有一个休息api,当我在浏览器中输入一个URL时,部分URL看起来像这样:

...where+%7B%0D%0A%3Fs+<http%3A%2F%2F...

实际上代表

...where { ?s <http://...

现在,当我必须通过我的JAVA代码调用相同的URl时,我知道URLEncoder用于编码URL。当我使用“UTF-8”格式时,“&lt;”在URL中也编码为%3C。

有没有任何编码方式可以“&lt;”和“&gt;”保留,而URL的其他部分,如空格和其他部分正确编码。

3 个答案:

答案 0 :(得分:2)

原因“&lt;” get编码是因为它不是合法的URI字符。它与字符编码无关。

如果服务器没有正确处理转义序列,则需要修复它。

答案 1 :(得分:0)

你可以做到

URLEncoder.encode(urlString).replace("%3C", "<")

答案 2 :(得分:0)

URLEncoder.encode(url, "UTF-8").replaceAll("%3C", "<").replaceAll("%3E", ">");