一. 现象
项目从jdk1.6升级到jdk1.8,出现了前端传数据到后端中文乱码
二. 解决方案
需要前后端同时改代码,解决如下:
1. 前端的参数处理如下:
之前是 : var tt="中文值";
现在改为: 如果是href 里面的url请求,则改为:var tt=encodeURI(encodeURI("中文值"));
如果是ajax的post请求的话,则改为:var tt=encodeURI("中文值");
也就是说,根据前端请求不同,前端这里编码一次还是两次 是不一定的。
2. 同时,后端改的代码如下:
之前是 String abc=tt; //前端的入参tt
现在改成:String abc=java.net.URLDecoder.decode(tt, "UTF-8");