URLEncoder将空格编码为加号,然后编码为%20。如何保持一致性?

时间:2013-03-11 20:22:48

标签: java urlencode

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

有没有办法让我保持一致,以便:

  1. space笔直转换为%20,或者
  2. 隐而不宣t convert the + to%20`
  3. 这是我的代码的样子:

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

    因此,如果filenamefoo bar.html,则第一次传递会给我foo+bar.html,第二次传递会给我foo%20bar.html

1 个答案:

答案 0 :(得分:2)

为了理解“直接到%20的空间”我们应该首先理解为什么我们编码URL,答案是因为URL中有一些字符不允许用于“&”,“=”等URL格式,“”等因为它们会导致错过URL解析。 因此,URLEncoder将这些字符替换为URL格式允许的某些传统其他字符。并且作为URL解析器将那些常规字符替换为“&”,“=”,“”等等。