如何在没有转义的情况下对URL字符串进行编码':'和' /'使用java的字符?

时间:2014-12-23 06:42:51

标签: java url encoding

我希望将字符串编码为网址,但URLEncoder.encode()无法做到这一点:

URLEncoder.encode("http://www.example.com/1/hello world", "utf8")

将导致

http%3A%2F%2Fwww.example.com%2F1%2Fhello+world

我希望得到的是:

http://www.example.com/1/hello+world

不对/:字符进行编码。


修改

这只是一个简单的例子,实际上我在网址中有很多非ascii字符。

1 个答案:

答案 0 :(得分:0)

您可以将“%3A”转换为“:”并在编码后将“%2F”转换为“/”。例如:

String ret = URLEncoder.encode("http://www.example.com/1/hello world", "utf8");
String ret2 = ret.replace("%3A", ":").replace("%2F", "/");

ret2就是你想要的......