【发布时间】:2013-08-21 19:26:37
【问题描述】:
正如标题所说:哪个编码器会给我%20而不是+的空间?我需要它的安卓。 java.net.URLEncoder.encode 给出+
【问题讨论】:
标签: java android urlencode url-encoding
正如标题所说:哪个编码器会给我%20而不是+的空间?我需要它的安卓。 java.net.URLEncoder.encode 给出+
【问题讨论】:
标签: java android urlencode url-encoding
Android 有它自己的 Uri 类,您可以使用它。
例如
String url = Uri.parse("http://www.google.com").buildUpon()
.appendQueryParameter("q", "foo bar")
.appendQueryParameter("xml", "<Hellö>")
.build().toString();
结果
http://www.google.com?q=foo%20bar&xml=%3CHell%C3%B6%3E
Uri使用 UTF-8 方案将给定字符串中的字符编码为“%”转义的八位字节。保留字母(“A-Z”、“a-z”)、数字(“0-9”)和未保留的字符(“_-!.~'()*”)不变。
注意:只有_-.* 被URLEncoder 视为未保留字符。 !~'() 将转换为 %21%7E%27%28%29。
【讨论】:
你必须自己替换+。
例子:
System.out.println(java.net.URLEncoder.encode("Hello World", "UTF-8").replace("+", "%20"));
更多内容请看这篇文章:
【讨论】: