SpringMVC传值中文乱码解决方案
程序员文章站
2022-04-03 08:14:49
...
在SpringMVC后台控制层获取参数的方式主要有两种,一种是request.getParameter("name"),另外一种是用注解@RequestParam直接获取。可以通过required=false或者true来要求@RequestParam配置的前端参数是否一定要传。 但问题是到了后台出现乱码,不论是SQL查询关键字,还是其他参数,试了几种方案
1.xml配置
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<form action="user/sixRequst" method="post" name="info">
username:<input type="text" name="username">
loginame:<input type="text" name="loginame">
<input type="submit" value="登录">
</form>
修改web.xml,增加编码过滤器,如***意,需要设置forceEncoding参数值为true)
<!-- 字符过滤器 -->
<filter>
<filter-name>encodingFilter</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>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
还是不管用
再改工程里的tomcat的配置文件server.xml
Connector标签增加useBodyEncodingForURI="true"属性即可
至此郁闷2周的乱码问题解决了。
数据库编码是否支持中文
数据库表和表字段是否正确
在配置连接数据库的参数设置修改:
<property name="url" value="jdbc:mysql://localhost:3306/dbname?useUnicode=true&characterEncoding=UTF-8"></property>