spring-mvc解决中文乱码问题

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>  
        这一段代码可以解决我们的大部分中文乱码问题:推荐使用;

        希望能够帮助需要的朋友,如果还有问题可以给我留言~

    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值