小编Cod*_*elp的帖子

表达式utf8mb4没有在MySQL 5.6中正确存储表情符号

我试图将表情符号存储到我的服务器中的数据库中.我使用AWS EC2实例作为服务器,我的服务器详细信息如下:

操作系统:ubuntu0.14.04.1

MySQL版本:5.6.19-0ubuntu0.14.04.1 - (Ubuntu)

数据库客户端版本:libmysql - mysqlnd 5.0.11-dev - 20120503

我使用以下SQL在服务器中创建了一个数据库测试和表格表情符号:

CREATE DATABASE IF NOT EXISTS `test` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
USE `test`;

CREATE TABLE IF NOT EXISTS `emoji` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `text` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8mb4 AUTO_INCREMENT=1;
Run Code Online (Sandbox Code Playgroud)

当我尝试执行以下插入时,会出现警告并且数据未正确存储:

INSERT INTO  `test`.`emoji` (`id` , `text`) VALUES (NULL ,  '   ');
Run Code Online (Sandbox Code Playgroud)

插入的行ID:3

警告:#1366字符串值不正确:'\ xF0\x9F\x91\x86\xF0 ...'代表第1行的'text'列

存储在文本列中的值为:???? ???? ???? ????

相同的方案适用于我的本地数据库,并且值正确存储.除了操作系统(Windows)之外,我的本地几乎所有配置都相似.

mysql collation character-encoding emoji utf8mb4

5
推荐指数
1
解决办法
1489
查看次数

标签 统计

character-encoding ×1

collation ×1

emoji ×1

mysql ×1

utf8mb4 ×1