问题描述:
普通web系统,前端后端都没有修改的前提下,突然后端接收到的中文参数全部乱码。tomcat重启后恢复正常。
运行环境:
tomcat8.5 , springboot,机器部署在阿里云上
接口日志记录下的变化:
productName:["农商"] productName:["æ\u0099®é\u0099\u0080"]
前端post请求的参数:
&productName=%E6%99%AE%E9%99%80
请求过程中仅有前端 - Nginx - 后端 ,日志中正常到异常这段时间,没有任何文件修改。想问一下各位,这种传参乱码的原因可能出在哪?要怎么排查?要排查tomcat么?重启后就正常的道理是什么?
通过这个可以将你这个乱码的字符还原,发现是 普陀
System.out.println(new String("æ\u0099®é\u0099\u0080".getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8));
%E6%99%AE%E9%99%80这是浏览器对中文进行编码了
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!