无法在utf8mb mysql表上存储表情符号

时间:2018-03-24 18:52:03

标签: mysql encoding utf-8 emoji

使用mysql 5.7创建此表:

CREATE TABLE `emails` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `subject` varchar(191) COLLATE utf8mb4_bin DEFAULT NULL,
  PRIMARY KEY (`id`),
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;

当我尝试插入一些表情符号时:

INSERT INTO `emails` (`from_address`, `subject`) VALUES (1, 'AB  C‍D')

我收到:

Incorrect string value: '\xF0\x9F\x98\x80B ...' for column 'subject' at row 1

为什么呢?如果我正在使用utfmb?

1 个答案:

答案 0 :(得分:2)

你的连接也是utf8mb4吗?有关详细说明,请访问:https://mathiasbynens.be/notes/mysql-utf8mb4