在SpringMVC项目中,我在前台发送带有中文参数的get请求到服务器,虽然我已经配置了spring的字符编码过滤器,但发现后台接收的字符串为乱码,详情如下。
我将字符串 ‘你好’ 发送到后台,经过debug发现’你好’被编码为:
%e4%bd%a0%e5%a5%bd
然后后台按照utf8将其解码为
ä½ å¥½
经过查阅资料发现,字符编码过滤器中的request.setCharacterEncoding(this.encoding)
只会对post请求设置编码,get请求默认会用ISO-8859-1编码,这个时候会乱码。所以要先将get请求设置为utf8编码,简单的解决方法如下:
修改TomCat的server.xml配置文件
<Connector URIEncoding="UTF-8" port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />