使用Ubuntu在安裝好MySQL資料庫之後,如果直接建立資料庫,再建立資料表,那麼是無法向欄位插入中文的,會報Incorrect string value錯誤。
c實現編碼設定的兩種方法:
(1)動態設定
建立資料庫:
CREATE DATABASE PyDB
CHARACTER SET `utf8`
COLLATE `utf8_general_ci`;
選擇此資料庫:
USE PyDB;
建立表:
CREATE TABLE PyTable (
username VARCHAR(10),
useraddr VARCHAR(10)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
(2)改變預設編碼
在mysql下,先執行命令:SHOW variables LIKE `%char%`;
檢視資料庫預設編碼是latin1。
以root身份更改mysql的配置檔案
在/etc/my.cnf 或 /etc/mysql/my.cnf 新增以下指令並儲存:
[client]
default-character-set = utf8
[mysqld]
default-storage-engine = INNODB
character-set-server = utf8
collation-server = utf8_general_ci
然後重啟mysql:service mysql restart
再次檢視:SHOW variables LIKE `%char%`;
可以看到編碼已經是UTF8。