如RFC 3986中所述,如何对字符串进行百分比编码?即我不希望(IMO,奇怪)www-url-form-encoded,that is different。
如果重要,我编码的数据不一定是整个网址。
答案 0 :(得分:4)
正如您所确定的那样,标准库无法很好地解决问题。
尝试使用Guava' PercentEscaper
,或直接使用the URL escapers中的一个,具体取决于您尝试编码的网址的哪一部分。
答案 1 :(得分:0)
番石榴的com.google.common.net.PercentEscaper(标记为“ Beta”,因此不稳定):
UnicodeEscaper basicEscaper = new PercentEscaper("-", false);
String s = basicEscaper.escape(s);
java.net.URLEncoder 的解决方法:
try {
String s = URLEncoder.encode(s, "UTF-8").replace("+", "%20");
} catch (UnsupportedEncodingException e) {
..
}