0

我有一些 Java 代码接受一个 String 并将 a 转换space+. 但是当我的程序读回该字符串时,它+会将%20.

有什么办法让我保持一致,以便它:

  1. 要么将space直线转换为%20,要么
  2. t convert the不+ to% 20`

这是我的代码的样子:

import java.net.URLEncoder;
...
String fileNameEncoded = URLEncoder.encode(filename);

所以如果filename是的话foo bar.html,第一遍会给我foo+bar.html,第二遍会给我foo%20bar.html

4

1 回答 1

2

为了理解“直接到 %20 的空格”,我们首先应该理解我们为什么要对 URL 进行编码,答案是因为 URL 中有一些字符不允许用于 URL 格式,例如“&”、“=”、“”和等等,因为它们会导致 URL 解析失败。出于这个原因,URLEncoder 将这些字符替换为 URL 格式中允许的一些常规其他字符。并且作为 URL 解析器,它会将那些常规字符替换回“&”、“=”、“”等。

于 2013-03-11T21:03:11.697 回答