資料庫亂碼解決

木叔發表於2017-11-04

說明:在新建資料庫的時候記得選擇編碼格式,一般中文選擇utf-8,資料庫在建表和每個欄位都會選擇字元編碼,出現字元編碼問題首先確保欄位編碼是否正確;

 

排查原因:

打斷點,檢視到底是在執行存資料庫操作之前就已經亂碼了,還是存資料庫操作後亂碼的。

前者解決方案:

在web.xml裡面加上:

 

<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<async-supported>true</async-supported>
<init-param:>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
在配置jdbc資料來源的時候加上:
jdbc:mysql://127.0.0.1:3306/logistics?useUnicode=true&amp;characterEncoding=UTF-8
存資料庫操作後亂碼,解決方案:
登入資料庫,執行如下sql:

show variables like 'character%';

結果:

| character_set_client     | utf8                                                   |

| character_set_connection | utf8                                                   |

| character_set_database   | latin1                                                 |

| character_set_filesystem | binary                                                 |

| character_set_results    | utf8                                                   |

| character_set_server     | latin1                                                 |

| character_set_system     | utf8                                                   |

 

說明在安裝資料庫的時候,character_set_database,character_set_server編碼格式設定錯誤。

解決:

找到mysql安裝路徑下的my.cnf檔案在[mysqld]下新增如下兩行:

character_set_server=utf8 
init_connect='SET NAMES utf8'

再次檢視,問題解決:

| character_set_client     | utf8                                                   |

| character_set_connection | utf8                                                   |

| character_set_database   | utf8                                                   |

| character_set_filesystem | binary                                                 |

| character_set_results    | utf8                                                   |

| character_set_server     | utf8                                                   |

| character_set_system     | utf8        

相關文章