SpringMVC 中mysql jdbc 中文乱码解决方案

对于SpringMVC mysql数据库而言,解决中文乱码,可以从3个方向考虑。

1. 通过修改mysql服务器端的配置文件/etc/mysql/my.cnf来支持中文

比如:

[mysql]
default-character-set=utf8

2. 在客户端或者JDBC连接时定制支持中文的编码格式

(通常使用UTF-8)
这样插入数据的时候,让mysql为自动为我们转码,如果是通过DriverManager.getConnection(url)编码方式操作JDBC,可以在JDBC的url中追加useUnicode=true&characterEncoding=UTF-8解决乱码问题。

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

3. 表单提交controller获得中文参数后乱码解决

jsp页面中文输入,到controller乱码,这时候需要修改设置的是在web.xml文件中添加一个编码的过滤器(filter)将编码统一为UTF-8,如下
(注意,需要设置forceEncoding参数值为true)

<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>  

注意: jsp页面编码设置为UTF-8
form表单提交方式为必须为post,get方式下面spring编码过滤器不起效果

4. Spring MVC RequestParam的中文乱码

配置一下tomcat 的server.xml 文件。
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding = "UTF-8"/>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,323评论 19 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,052评论 6 342
  • 编码问题一直困扰着开发人员,尤其在 Java 中更加明显,因为 Java 是跨平台语言,不同平台之间编码之间的切换...
    x360阅读 7,188评论 1 20
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,899评论 18 399
  • 还记得,我给你的那条围巾么? 这是我一针一线为你所织的,花了我三个月之久 在你生日的晚上,我带着它 把它悄悄地放在...
    七年凉安阅读 3,362评论 3 7