spring-mvc 解决中文乱码
我们在开发springmvc的时候经常会遇到一些非常恶心的中文乱码问题,本人总结一下三种解决乱码的方法:
1:插入数据库时出现中文乱码:
以mysql为例:我们只需要配置MySQL的url的时候加上:?useUnicode=true&characterEncoding=utf-8 就可以了
例如:
String url = "jdbc:mysql://localhost:3306/spring?useUnicode=true&characterEncoding=utf-8
(注意):前提是MySQL的字符集和characterEncoding一样为:utf-8,如果数据库和你插入数据的的字符集不一样,请修改任意一方的字符集,在这里不加赘述。
2:HttpServletRequest获取数据出现乱码:
获得前端传的数据时出现乱码,相信大家都遇到过,其实很好解决,我们只需要在获取数据前设置一下他的字符集就可以了
request.setCharacterEncoding("utf-8");//设置字符集为utf-8
例如:
@RequestMapping(value="/userLogin")
public String userLogin(HttpServletRequest req) throws UnsupportedEncodingException {
req.setCharacterEncoding("utf-8");
return req.getParameter("username");
}
3:POJO注入出现中文乱码:
例如:
@RequessMapping("/user")
publci void userlogin(User user){
System.out.print(user);//出现乱码
}
<filter>
<filter-name>characterEncodingFilter</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>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
这一段代码可以解决我们的大部分中文乱码问题:推荐使用;
希望能够帮助需要的朋友,如果还有问题可以给我留言~