spring mvc url 参数传递出现中文乱码解决办法

时间:2023-02-10 08:21:04

今天自己动手搭建SpringMVC框架,搭建完成后测试时,在浏览器输入测试地址http://localhost:8090/springMvc/helloWorld.do?USERNAME=测试,出现中文乱码。

通常比较简单的解决方法是在web.xml文件中加入如下配置:

<!-- 过滤器,用来将请求的字符统一转化成 UTF-8 编码 -->
<filter>
<filter-name>CharacterEncoding</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<!-- forceEncoding用来设置是否理会 request.getCharacterEncoding()方法,设置为true则强制覆盖之前的编码格式 -->
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<!-- 过滤器,用来将请求的字符统一转化成 UTF-8 编码 -->
<filter-mapping>
<filter-name>CharacterEncoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

但是加入该配置后乱码问题没有得到解决,后来发现因为在浏览器直接输入地址,是发起的get请求。但是上面的过滤只会对post起作用,这时候就需要修改tomcat安装目录下的server.xml, 找<Connector port="8080" />,在里面加uRIEncoding="utf-8"