js提交java后台,双引号转义为&;quot;解决办法……StringEscapeUtils.unescapeHtml4完美解决
程序员文章站
2022-04-17 14:38:11
...
一、 问题现象:
1.1. 前台数据
ryTask.serchData('000000INC20200830000001','2020-10-01','2020-10-21','Project','LSubmitInfo','INC')
1.2.后台数据
ryTask.serchData('000000INC20200830000001','2020-10-01','2020-10-21','Project','LSubmitInfo','INC')
前台json放入form表单文本框提交,
怎么到后台我的双引号"
就变了,"
左括号变成了(
右括号变成了)
单引号变成了'
二、 解决方案:
2.1. maven依赖
<!--解决前台传递参数转译问题-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.9</version>
</dependency>
但是,commons-lang3中的StringEscapeUtils过期了,用下面的依赖代替即可
<!--解决前台传递到后台参数特殊字符转译工具-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-text</artifactId>
<version>1.1</version>
</dependency>
2.2. 关键代码
//将接收到的jsonStr处理一次,就OK了
String newJson = StringEscapeUtils.unescapeHtml4(jsonStr);
2.3. 去空格处理
前台传递过来的数据居然每个参数之间多了空格
public static void main(String[] args) {
String str = "ryTask.serchData& #40;& #39;000000INC20200830000001& #39;,& #39; 2020-10-01& #39;,& #39; 2020-10-21& #39;,& #39;Project& #39;,& #39;LSubmitInfo& #39;,& #39;INC& #39;& #41;";
String replace = str.replace(" ", "");
System.out.println(replace);
System.out.println(StringEscapeUtils.unescapeHtml4(replace));
// System.out.println(StringEscapeUtils.unescapeHtml4("()"));
}
最后利用java的StringEscapeUtils.unescapeHtml4,成功解决问题
上一篇: 我绝对可以知道你的年纪
下一篇: 女人理想中的三大闺蜜