使用MySQL建立的數據庫的默認字符集是latin1,這常常會致使在編運行中報錯,相似於(1267, "Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='")
以前沒有接觸過MySQL,最近遇到過這種狀況,特記錄於此。html
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [create_specification] ... create_specification: [DEFAULT] CHARACTER SET [=] charset_name | [DEFAULT] COLLATE [=] collation_name
關於MySQL默認的CHARACTER SET,詳見官方文檔10.1.2 Character Sets and Collations in MySQL
例(以utf8編碼建立數據庫):CREATE DATABASE db_name DEFAULT CHARACTER SET utf8
mysql
在MySQL的命令行中輸入sql
>>USE database >>STATUS
就能夠獲得數據庫的編碼信息數據庫
Server characterset: latin1 Db characterset: latin1 Client characterset: utf8 Conn. characterset: utf8
alter database superset CHARACTER SET utf8
編碼