java.net.URLEncoder.encode将空间编码为+但我需要%20

Cot*_*nyo 12 java android urlencode url-encoding

正如标题所说:哪个编码器会给我空间%20而不是+?我需要它为Android.java.net.URLEncoder.encode给出+

zap*_*apl 25

Android有自己的Uri类,你可以使用它.

例如

String url = Uri.parse("http://www.google.com").buildUpon()
    .appendQueryParameter("q", "foo bar")
    .appendQueryParameter("xml", "<Hellö>")
    .build().toString();
Run Code Online (Sandbox Code Playgroud)

结果是

http://www.google.com?q=foo%20bar&xml=%3CHell%C3%B6%3E

Uri将给定字符串中的字符编码为'%' - 使用UTF-8方案转义八位字节.保留字母("AZ","az"),数字("0-9")和未保留字符("_-!.〜'()*").

注意:仅_-.*被认为是未保留的字符URLEncoder.!~'()会转换成%21%7E%27%28%29.


zen*_*non 2

你必须 +自己更换。

例子:

System.out.println(java.net.URLEncoder.encode("Hello World", "UTF-8").replace("+", "%20"));
Run Code Online (Sandbox Code Playgroud)

更多内容请看这篇文章:

URLEncoder 无法翻译空格字符