Mac 下MySQL數據庫中文亂碼解決方案:
當我們用框架進行數據庫的存儲操作時,經常會遇到中文亂碼的問題。
如:在使用Java中得SSH框架時,我們需要在web.xml文件中配置編碼的filter,具體代碼是:
<span style="font-family:FangSong_GB2312;font-size:14px;"><!-- 表單處理亂碼,必須在OpenSessionInViewFilter的filter之前 --> <filter> <filter-name>CharacterFilter</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> </filter> <filter-mapping> <filter-name>CharacterFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping></span>
然後進行數據庫存儲的時候發現存儲到數據庫的中文還是亂碼,這個時候調試項目發現最後傳入SQL的參數值已經是正常的中文了,
那麼這個時候我們就需要查看下數據庫的編碼了。
使用SQL命令查看默認的編碼格式:
<span style="font-family:FangSong_GB2312;font-size:14px;">show variables like "%char%";</span>
查看test數據庫的編碼格式:
<span style="font-family:FangSong_GB2312;font-size:14px;">show create database test;</span>
然後我們進行Max下的MySQL編碼修改:
由於Mac版的MySql默認字符集不是utf-8,所以需要如下步驟來進行修改
在 終端中輸入
<span style="font-family:FangSong_GB2312;font-size:14px;">sudo -s</span>
然後提示輸入密碼,此密碼為系統密碼!
在命令行中輸入
<span style="font-family:FangSong_GB2312;font-size:14px;">cd /usr/local/mysql/support-files</span>
繼續輸入(拷貝文件到etc目錄下)
<span style="font-family:FangSong_GB2312;font-size:14px;">cp my-default.cnf /etc/my.cnf</span>
繼續輸入(進入etc目錄)
<span style="font-family:FangSong_GB2312;font-size:14px;">cd /etc</span>
繼續輸入
<span style="font-family:FangSong_GB2312;font-size:14px;">vimy.cnf</span>
這個時候,你會發現用vi工具打開了my.cnf文件,它的光標的上下左右移動是通過鍵盤上的h、j、k、l這幾個按鍵,Mac系統版本不一樣10.9.3系統光標是鍵是起作用的!
然後按j鍵 把光標移動到[client]的最後,添加一個屬性:(或使用下鍵)
<span style="font-family:FangSong_GB2312;font-size:14px;">default-character-set=utf8(此屬性mysql 5.5之後不能夠在
mysqld下面增加,也就是5.5以前的版本,之後的版本忽略此屬性)</span>
繼續按下鍵,把光標移動到[mysqld]後面,添加3個屬性
<span style="font-family:FangSong_GB2312;font-size:14px;">default-storage-engine=INNODB character-set-server=utf8 collation-server=utf8_general_ci</span>
按鍵盤左上角的esc鍵推出編輯模式,然後輸入一個冒號和字母x
重啟MySql服務
此時再次執行數據庫操作,中文已經可以正常存儲了!
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!