我有一些Java代码,它接受一个字符串并将space
转换为+
。但是当我的程序读回String时,它会将+
转换为%20
。
有没有办法让我保持一致,以便:
space
笔直转换为%20
,或者t convert the
+ to
%20` 这是我的代码的样子:
import java.net.URLEncoder;
...
String fileNameEncoded = URLEncoder.encode(filename);
因此,如果filename
为foo bar.html
,则第一次传递会给我foo+bar.html
,第二次传递会给我foo%20bar.html
。
答案 0 :(得分:2)
为了理解“直接到%20的空间”我们应该首先理解为什么我们编码URL,答案是因为URL中有一些字符不允许用于“&”,“=”等URL格式,“”等因为它们会导致错过URL解析。 因此,URLEncoder将这些字符替换为URL格式允许的某些传统其他字符。并且作为URL解析器将那些常规字符替换为“&”,“=”,“”等等。