MySQL 請不要用UTF8了!!!

2021-10-24 14:48:33 字數 1003 閱讀 5445

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 預覽版...