如何用Java编码百分比?

时间:2014-12-01 00:58:48

标签: java percent-encoding

RFC 3986中所述,如何对字符串进行百分比编码?即我不希望(IMO,奇怪)www-url-form-encoded,that is different

如果重要,我编码的数据不一定是整个网址。

2 个答案:

答案 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) {
  ..
}