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

2022-09-03 12:42:11

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


答案 1

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

乌里使用 UTF-8 方案将给定字符串中的字符编码为 “%” 转义的八位字节。留下字母(“A-Z”、“a-z”)、数字(“0-9”)和未保留字符(“_-!.~'()*“) 完好无损。

注意:只有 被 视为非保留字符。 将转换为 ._-.*URLEncoder!~'()%21%7E%27%28%29


答案 2

你必须自己替换。+

例:

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

欲了解更多信息,请看这篇文章:

URL编码器无法翻译空格字符