總的來說,添加中文到數據庫亂碼就是編碼字符不符合導致。下面分享eclipse與IDEA中解決添加數據庫亂碼的幾個方法!!希望對大家有幫助
一丶查看數據庫的默認編碼
通過輸入密碼進入mysql:
輸入show variables like 'character%'; 查看mysql 的字符集
安裝MySQL數據庫時的默認編碼是latin1,實際使用時可能要使用其他編碼。
二丶修改編碼
修改MySQL的配置文件my.ini(windows系統下),位置在安裝目錄下。
1.在[client]下追加:
default-character-set=utf8
2.在[mysqld]下追加:
character-set-server=utf8
3.在[mysql]下追加:
default-character-set=utf8
最后在重啟服務。
上面是查看數據庫中的字符集。
我們在實際添加的時候可以查看web.xml中的 配置的解決字符亂碼的過濾器是否有用:
這個解決字符亂碼的過濾器本人試過有用!
<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>
其次,我們還要查看我們數據庫中,自己建表時,是否也對應了utf-8這個字符集
我們還可以在properties配置文件中,
這欄:jdbc.url=jdbc:mysql:///數據庫名稱?useUnicode=true&characterEncoding=utf-8 加入這個useUnicode=true&characterEncoding=utf-8
或者?charactorEncoding=utf8 這兩個自己都用過。大概是說我們在獲取數據庫連接對象的方法沒有給我們限制字符集!
最后,我們還可以在tomcat 中的server.xml中設置一下
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8" />
------------------------------------------------------------------------------------------------------------------------
過了這么多天,有跟大家分享一下在IDEA中添加中文到數據庫亂碼的問題,萬變不離其宗,還是一樣的問題:
?useUnicode=true&characterEncoding=utf-8&useSSL=false
IDEA中中文亂碼!多加了&useSSL=false。本人嘗試,有效!!!!