7

如RFC 3986中所述,如何对字符串进行百分比编码?即我不想要(IMO,奇怪的)www-url-form-encoded,因为 不同的。

如果重要的话,我正在对不一定是整个 URL 的数据进行编码。

4

2 回答 2

5

正如您所确定的,标准库不能很好地解决这个问题。

尝试使用 GuavaPercentEscaper或直接使用其中一个URL 转义器,具体取决于您尝试编码的 URL 的哪一部分。

于 2014-12-01T01:09:27.153 回答
3

Guava的 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) {
  ..
}
于 2020-03-15T02:37:58.850 回答