美文网首页技术文JavaEE 学习专题技术干货
SpringMVC 中mysql jdbc 中文乱码解决方案

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

作者: 寒方芳 | 来源:发表于2017-10-31 14:18 被阅读0次

对于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"/>

相关文章

网友评论

    本文标题:SpringMVC 中mysql jdbc 中文乱码解决方案

    本文链接:https://www.haomeiwen.com/subject/ralbpxtx.html