java向mysql數據庫插入數據顯示亂碼的問題

在作一個java web工程時,有時會碰到在向數據庫添加數據庫時,結果出現亂碼」???「的問題。針對該問題的主要解決辦法就是:java

1、確保是否添加了字符集過濾器:mysql

     在java web工程中的web.xml裏,添加如下代碼解決亂碼:web

    <filter>
        <filter-name>SpringEncodingFilter</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>SpringEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

2、確保建立的數據庫是否配置支持中文,以下圖所示進行配置:spring

    

3、若是仍然亂碼,則就是mysql的編碼問題(mysql默認編碼爲:latin1):sql

      一、查看mysql編碼配置:
數據庫

          「運行」——>輸入「mysql」——>彈出mysql客戶端對話框——>以root身份進入mysql:windows

           進入後:輸入命令:"show variables like 'character%';" 查看mysql字符編碼,結果以下:app

           

          說明不支持中文編碼,所作的操做就是:測試

          在mysql的安裝目錄下,找到「my.ini」(windows系統下後綴爲ini, Mac系統下後綴爲cnf, )的配置文件,以記事本方式打開:編碼

          找到客戶端配置 [client],在下面添加 「default-character-set=utf8」,後找到 [mysql] ,在下面添加 「default-character-set=utf8」,而後搜索「default-character-set」,把全部的default-character-set 都改成「utf8「(注:一般在改了[client]和[mysql]以後,其他位置的也須要改),以下如所示:

       

 

      而後重啓mysql服務,再次」 show variables like 'character%'; 「查看mmysql字符編碼,結果以下所示:

 

 而後測試向數據庫添加數據,亂碼問題再也不出現。

相關文章
相關標籤/搜索