mysql 的utf8字元編碼 並不是真正的utf8:
以前這樣建立資料庫和表:
建立資料庫:
create database `mydatabase`
default character set utf8
default collate utf8_general_ci;
建立表:
create table if not exists t_table(
id int unsigned auto_increment,
column1 varchar(20) not null,
column2 varchar(500) not null,
primary key (id)
)engine=innodb default charset=utf8;
mysql 後來發布的 utf8mb4 編碼 才是真正的utf8字元編碼:
所以應該使用下面的方式建立資料庫和表:
建立資料庫:
create database `mydatabase`
default character set utf8mb4
default collate utf8mb4_unicode_ci;
建立表:
create table if not exists t_table(
id int unsigned auto_increment,
column1 varchar(20) not null,
column2 varchar(500) not null,
primary key (id)
)engine=innodb default charset=utf8mb4;
MySql千萬不要用utf 8!!
錯誤 incorrect string value xf0 x9f x98 x83 for column xx at row 1 原因為 utf8 只支援每個字元最多三個位元組,而真正的 utf 8 是每個字元最多四個位元組。mysql 一直沒有修復這個 bug,他們在 2010 年發布了乙個叫作 ...
不要在MySQL使用UTF 8
最近我遇到了乙個bug,我試著通過rails在以 utf8 編碼的mariadb中儲存乙個utf 8字串,然後出現了乙個離奇的錯誤 incorrect string value xf0 x9f x98 x83 for column summary at row 1 我用的是utf 8編碼的客戶端,伺...
不要在MySQL中使用「UTF 8」
mysql 從 4.1 版本開始支援 utf 8,也就是 2003 年,而今天使用的 utf 8 標準 rfc 3629 是隨後才出現的。舊版的 utf 8 標準 rfc 2279 最多支援每個字元 6 個位元組。2002 年 3 月 28 日,mysql 開發者在第乙個 mysql 4.1 預覽版...