MySQL中文亂碼如何解決?

mysql數據庫越來越受大家的歡迎了。

中國人往數據庫里存數據,總的也不會少了中文,可mysql存中文默認會亂碼。

這里我們需要來做一些配置,讓它不再是“存進去是中文,查出來是各種問號”了。

1.我們可以先看看自己的mysql數據庫,中文是否亂碼。

登錄數據庫,再帶的test數據庫中,創建一張表,然后插入中文,查詢結果。我們可以看到,中文變成了問號。

show?databases;  use?test;  create?table?users(name?varchar(50));  insert?into?users?values('張三');  select?*?from?users;

MySQL中文亂碼如何解決?

2.我們來查詢一下,各個字符相關的變量的值是什么。

輸入 SHOW VARIABLES LIKE ‘character%’;

我們可以看到?character_set_database的值為latin1。大家的值可能和我的不一定一樣,總體來說應該不會是都為utf8。

MySQL中文亂碼如何解決?

3.如果有多處不是utf8,我們需要來修改mysql的配置文件my.ini。

一般位于安裝路徑根目錄,或者安裝路徑根目錄的bin下,或者Linux下/etc/my.cnf。

MySQL中文亂碼如何解決?

4.在my.ini中:

搜索到[client],修改或添加default-character-set=utf8;

搜索到[mysqld],修改或添加character-set-server=utf8;

搜到到[mysql],修改或添加default-character-set=utf8;

MySQL中文亂碼如何解決?


5.重啟mysql數據庫。

Windows下可以運行services.msc,找到mysql服務,重啟;

Linux下,可以/etc/init.d/mysqld restart;

我的是xampp,沒有添加服務,直接先點擊stop,再start就好了。

MySQL中文亂碼如何解決?


6.查看各變量的值;

SHOW?VARIABLES?LIKE?'character%';

或者

status

MySQL中文亂碼如何解決?

7.測試修改之后是否仍亂碼。

create?database?baidujingyan;  use?baidujingyan;  create?table?users(name?varchar(50));  insert?into?users?values('張三');  select?*?from?users;

可以看到,我們的數據庫已經能正常顯示中文了。

MySQL中文亂碼如何解決?

注意事項

如果在程序中,還會出現亂碼,可以在添加 set names utf8

? 版權聲明
THE END
喜歡就支持一下吧
點贊12 分享