今天项目组同事反映,之前有一个正常的请求,今天突然后台获取参数的值出现了中文乱码,怀疑是之前更新jar包所致,笔者仔细想了想更新的内容,仿佛没有涉及到编码的变更啊,然后开始排查,首先后台加了强制以utf-8解析请求的过滤器,web服务器的编码也改成了utf-8,前台页面也是utf-8编码,但是就是有个页面的请求出现了乱码;经过对比发现,所有采用了通用ajax工具提交的请求,都会有这个问题,后来发现,原来上次更新为了解决跨域的问题,在通用的底层代码中加入了content-type参数,默认值设为了“application/x-www-form-urlencoded”,这样jquery提交ajax请求的时候就不会再给我们自动带上“;charset=UTF-8”,那么浏览器如果采用了非utf-8的方式提交就会出现乱码。
后将默认值改为“application/x-www-form-urlencoded;charset=UTF-8”,一切正常。
时间: 2024-10-10 05:14:54