更新時間:2022-11-16 來源:黑馬程序員 瀏覽量:
導讀:
作為一個數據庫的初學者,遇到數據庫亂碼問題,是一個比較頭疼的問題,下面根據我的使用經驗,給大家分享幾種解決mysql數據庫亂碼問題的方式,希望對大家有幫助。
一、我們需要將默認的字符集更改為utf-8來解決數據庫導入數據的亂碼問題:
我們需要先查看數據庫默認的字符集是什么:
show variables like 'character_set_%'
查看所有的默認字符集
mysql> show variables like 'character_set_%'; +--------------------------+---------------------------------------------------------+ | Variable_name | Value | +--------------------------+---------------------------------------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | latin1 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | latin1 | | character_set_system | utf8 | | character_sets_dir | C:\Program Files\MySQL\MySQL Server 5.7\share\charsets\ | +--------------------------+---------------------------------------------------------+ 8 rows in set, 1 warning (0.01 sec)
其中character_set_database和character_set_server的字符集mysql默認為latin1。
我們需要將其更改為utf-8的字符需要用到下面兩行代碼:
set character_set_database=utf8; set character_set_server=utf8;
然后我們做字符集查詢
show variables like 'character_set_%'
得到:
mysql> show variables like 'character_set_%'; +--------------------------+---------------------------------------------------------+ | Variable_name | Value | +--------------------------+---------------------------------------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | C:\Program Files\MySQL\MySQL Server 5.7\share\charsets\ | +--------------------------+---------------------------------------------------------+ 8 rows in set, 1 warning (0.00 sec)
之后創建的所有的數據庫的字符集都默認為utf-8的字符集 .這個時候我們再去做字符集的插入時就可以看到漢字被成功插入不會再出現亂碼問題。
二、更改數據庫和表的字符集的方法
alter database 數據庫名 charset utf8; alter table 數據表名 convert to character set utf8;
三、導入數據庫的方法
Windows系統
source d:/table.sql(*.sql文件所處的盤位置)
linux系統
source /home/hhh/桌面/tables.sql;
總結:
上面給大家介紹了三種解決mysql亂碼的方法,因為我們將來開發的系統,基本上都會涉及到非英文的數據,因此建議大家使用第一種方式,把數據庫服務器的默認編碼方式改成utf8,這樣以后不管什么時候使用,都不會發生亂碼問題!