您的位置:首页 > 编程语言 > Java开发

spring-mvc解决中文乱码问题

2018-03-22 13:00 387 查看

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);//出现乱码
        }
            解决这个问题,我们需要在我们的配置文件web.xml中配置一个中文拦截器,具体配置请看以下代码:
    <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>
        这一段代码可以解决我们的大部分中文乱码问题:推荐使用;

        希望能够帮助需要的朋友,如果还有问题可以给我留言~
    
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  spring-mvc z