前台传中文到后台Controller乱码问题的解决

本文探讨了在使用GET请求时出现中文乱码的问题,并详细介绍了如何通过调整Tomcat服务器配置来解决该问题。文中提到,尽管设置了过滤器和字符编码,但GET请求仍可能出现乱码,最终解决方案是在server.xml中添加URIEncoding属性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JS传中文参数到Controller的时候出现了乱码。

查看了web.xml中的CharacterEncodingFilter配置没有问题。

而且在测试环境上跑的时候功能正常但是在开发环境却有问题。尝试了在代码中添加:

request.setCharacterEncoding("xxxx")之类的方法也不可行。

但是

new String(name.getBytes("ISO-8859-1"),"UTF-8");

可行。

查了一些资料后了解到Tomcat对于post和get的处理方式不同。

所以过滤器和request.setCharacterEncoding("xxxx")之类的方法对POST方法可行,但是对GET方法没有作用。

所以想要解决这个问题要修改Tomcat的配置文件server.xml

找到<Connector connectionTimeout="20000" port="8080"> 这段信息

然后再最后加上 URIEncoding="UTF-8" 即可。

总结:

post方法受过滤器以及setCharacterEncoding方法的限制,但是get方法不受,所以要修改get方式的乱码问题,要从tomcat的配置文件入手解决。

以上,愚见。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值