涉及到中文問題,大多都是編碼類型的問題啦。
我們首先看看默認mysql創建表后使用的編碼類型是什么吧。
下圖中我們首先創建了一個表test。
create table test(name char(20);
3DAB6F0C-AC53-4134-BA44-FEA01C55C838.png
然后我們可以使用命令
SHOW FULL COLUMNS FROM 表名;
來查詢各個列的編碼類型。
我們創建的表只有一列name,從圖中可以看到該列的collation的值為latin1_swdish_ci,這是一種拉丁編碼類型,要想顯示中文,需要使用到utf-8編碼類型。
我們可以先試試在這種拉丁編碼下是否可以插入中文數據。
例如我們使用
insert into test values('張三');
我們會發現,插入操作遇到了error,即并不能插入成功。
5CBCA151-8D98-4BE2-8B20-6B158EB67DDD.png
接下來,我們試試如何將該列的編碼更改為utf-8類型。
alter table test change name name char(20) character set utf8 collate utf8_general_ci;
如下圖所示:
9FD6BB20-0007-417C-B9BB-F51D740EFBE0.png
此時,我們再次查看name列的編碼類型:
可以看到,此時編碼類型已經變為了UTF-8。
60DC08F6-6F7B-4EB5-A3D2-A3906022958B.png
下面我們再試試,此時能否插入中文數據:
可以看到,此時已經成功將‘張三’插入了表中。
95FE8353-A0DD-4250-9B4D-012568849BBE.png
打印出表中的所有行,可以看到確實已經成功插入。
12C4CCBF-0AA5-42D2-9C39-C11F76D1EFD8.png
說明這種方法是奏效的。但是每次創建表時,默認編碼都是拉丁編碼,如果每次都需要手動修改編碼類型,似乎是一件非常繁瑣的事情。所以我們來看看是否有什么辦法來讓創建表時,默認編碼類型為utf-8;
一開始我查閱很多資料,很多資料需要修改mysql的配置文件,顯得比較復雜,而且一旦配置出錯,會讓我這種小白不知所措的!
下面我們來介紹一種較為簡單的方法,就是在創建database時指定默認的字符集。
CREATE DATABASE 數據庫名 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
這樣,在該數據庫下創建的所有表都默認是utf8字符集的啦!
這個的方法是從這位博主這里知道的,http://blog.csdn.net/tyuttjx/article/details/26576041
O(∩_∩)O~~