SpringMVC字符集问题

今天写代码的时候发现前台传到后台的参数总是乱码,记录一下解决方法。

SpringMVC编码格式过滤器配置(通过该过滤器,能够设置请求和应答的编码格式)

<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>        
        <init-param>
            <param-name>forceEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
  </filter>
  <filter-mapping>
      <filter-name>EncodingFilter</filter-name>
      <url-pattern>/*</url-pattern>
  </filter-mapping>

设置了该过滤器,发现后台的参数还是乱码。发现请求参数在进入该filter之前就已经是乱码了,说明在此之前还需要进行编码格式指定。想了一下请求的过程,前台参数不是乱码,但是进入filter之前变成乱码了,说明在tomcat接受到请求的时候,参数已经是乱码了。网上查了一下,修改server.xml可以修改tomcat编码格式。

<Connector port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" URIEncoding="UTF-8" />

这下好了,前后台通讯终于没有乱码了。


但是奇怪的事情又发生了,控制台的sql和参数在数据库中运行能够检索到结果,但是页面却没有显示结果。无条件检索的情况下是可以检索到结果的,说明前后台本身的代码没有问题,那么问题只能是应用服务器和数据库通信的时候,中文参数没有正确解析,导致数据库没有检索到结果。目标很明确,直接找度娘。

jdbc.url=jdbc:mysql://192.168.174.129:3306/mydb?useUnicode=true&characterEncoding=UTF-8

重点是userUnicode和characterEncoding两个参数。详解可以参考这篇文章,很清楚。


乱码问题暂时告一段落。











  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值