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


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

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

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

    <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>

二、確保創建的數據庫是否配置支持中文,如下圖所示進行配置:

    

三、如果仍然亂碼,則就是mysql的編碼問題(mysql默認編碼為:latin1):

      1、查看mysql編碼配置:

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

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

           

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

          在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字符編碼,結果如下所示:

 

 然后測試向數據庫添加數據,亂碼問題不再出現。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM