在上篇文章裡說到,**會出現亂碼的原因已經找到了,都是因為mysql資料庫的字符集不統一!所以,要解決亂碼的問題,只要把mysql資料庫的字符集統一就起,就萬事ok了!這裡教大家怎樣修改mysql資料庫的預設字符集。
想必大家做的大部分也都是中文站,筆者推薦大家做站都盡量的使用utf-8的編碼格式。至少utf-8編碼格式的好處,筆者這裡就不在多說了,感興趣的朋友可以去gg一下。修改mysql的預設字符集是通過修改它的配置檔案來實現的。一般分兩種情況:
windows平台:
windows下的mysql配置檔案是my.ini,一般在mysql安裝目錄的根目錄下面,開啟配置檔案,找到default-character-set項,直接修改為:
default-character-set=utf8
然後重新啟動mysql,就可以了!
還有一種修改字符集的方法,就是使用mysql的命令:
mysql> set character_set_client = utf8 ;mysql> set character_set_connection = utf8 ;
mysql> set character_set_database = utf8 ;
mysql> set character_set_results = utf8 ;
mysql> set character_set_server = utf8 ;
mysql> set collation_connection = utf8 ;
mysql> set collation_database = utf8 ;
mysql> set collation_server = utf8 ;
類unix平台
在類unix平台下,方法跟windows平台下面類似,只是配置檔案的存放目錄與windows系統下的不太一樣,linux下的mysql配置檔案是my.cnf,一般是/etc/my.cnf,如果找不到可以用find命令找一下:
find / -iname my.cnf找到default-character-set項,直接修改為:
default-character-set=utf8
然後重新啟動mysql,就可以了!
注意:一般就算設定了表的預設字符集為utf8並且通過utf-8編碼傳送查詢,你會發現存入資料庫的仍然是亂碼。問題就出在這個connection連線層上。解決方法是在傳送查詢前執行一下下面這句:
set names 'utf8';它相當於下面的三句指令:
set character_set_client = utf8;set character_set_results = utf8;
set character_set_connection = utf8;
總結:因此,使用什麼資料庫版本,不管是3.x,還是4.0.x還是4.1.x,其實對我們來說不重要,重要的有二:
1) 正確的設定資料庫編碼.mysql4.0以下版本的字符集總是預設iso8859-1,mysql4.1在安裝的時候會讓你選擇。如果你準備使用utf- 8,那麼在建立資料庫的時候就要指定好utf-8(建立好以後也可以改,4.1以上版本還可以單獨指定表的字符集)
2) 正確的設定資料庫connection編碼.設定好資料庫的編碼後,在連線資料庫時候,應該指定connection的編碼,比如使用jdbc連線時,指定連線為utf8方式.
Mysql資料庫亂碼
以前用mysql都是安裝的時候把字符集設定為utf 8,所以很少出現亂碼,今天在用wampserver中的mysql時,發現提交到資料庫的中文亂碼,因為很清楚建表使用utf 8,服務端也使用utf 8,就是因為換了資料庫伺服器後出現亂碼,看來問題肯定是出在資料庫伺服器上,於是檢視mysql配置檔案發...
Mysql資料庫亂碼
以前用mysql都是安裝的時候把字符集設定為utf 8,所以很少出現亂碼,今天在用wampserver中的mysql時,發現提交到資料庫的中文亂碼,因為很清楚建表使用utf 8,服務端也使用utf 8,就是因為換了資料庫伺服器後出現亂碼,看來問題肯定是出在資料庫伺服器上,於是檢視mysql配置檔案發...
Mysql資料庫亂碼
我的資料庫版本是wamp server 中的mysql5.6.17資料庫。之前用的不是wamp server中的mysql資料庫,沒出現亂碼問題。現在講一下這個問題,這個資料庫亂碼是連線springboot專案時遇到的亂碼問題,亂碼情況如下。命令列檢視資料庫編碼格式,開啟命令列方法在資料庫 test...