java後臺中文亂碼問題

1、數據庫數據亂碼java

1.在java端,首先把工做空間的字符設置成utf8格式,鏈接數據庫時配置mysql

cn.kting.base.dataSource1.jdbc.driverClassName=com.mysql.jdbc.Driver
cn.kting.base.dataSource1.jdbc.url=jdbc:mysql://192.168.1.123:8080/zhang?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true
2.在數據庫端,注意把全部格式設置成相應的utf8格式,個人問題就是在使用數據庫客戶端工具鏈接數據庫時的格式沒設置utf8,直接connect用了默認的格式,因此亂碼了web

2、URL傳中文亂碼spring

1.發送請求方注意把格式設置爲utf8sql

2.java後臺,注意把工做空間的字符設置成utf8格式數據庫

3.在web-inf目錄下在web.xml中配置tomcat

<!-- 字符編碼過濾器 -->
    <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>app

4.修改tomcat的配置,在安裝目錄下搜索server.xml文件,修改工具

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

添加上 URIEncoding="UTF-8" 和useBodyEncodingForURI="true",默認是沒有這兩個的

個人坑就是在4上面,搞了好長時間。

5.若是以上配置都不生效,仍是中文亂碼,看一下tomcat的版本,7.0及如下的版本有問題,把tomcat更新到8.0以上。

相關文章
相關標籤/搜索