URLEncoder.encode转译后“空格”变“加号”的问题

URLEncoder.encode转译后“空格”变“加号”的问题

例如:
String test = “++ ++ ++”;
test = URLEncoder.encode(test);
对字符串test进行编码,但是发现空格全部都变成了加号
test = URLEncoder.encode(test);
test = test.replaceAll("\+", “%20”); //处理空格

遇到的问题: 用URLEncoder.encode方法会把空格变成加号(+)在前台页面显示的时候会多出加号。比如:

  1. 当上传文件的文件名中间有空格,文件名为 “新建 文本文档.txt” ,从后台返回值解码后却变成了“新建+文本文档.txt”;
  2. http请求,用URLEncoder.encode加密responseBody,空格变+。

解决方法: 在值传回前台时先把变量中的加号(+)全部替换为“%20”。str.replace("+","%20")或str.replaceAll("\+", “%20”)

猜你喜欢

转载自blog.csdn.net/arno_666/article/details/85048802
今日推荐