我正在尝试将表情符号存储到我服务器中的数据库中。我使用 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;
当我尝试执行以下插入时,出现警告并且数据未正确存储:
INSERT INTO `test`.`emoji` (`id` , `text`) VALUES (NULL , ' ');
插入的行 ID:3
警告:#1366 不正确的字符串值:'\xF0\x9F\x91\x86 \xF0...' 用于第 1 行的列 'text'
文本列中存储的值为:???? ?????????
相同的场景适用于我的本地数据库,并且值已正确存储。除了操作系统(Windows)之外,我本地的几乎所有配置都相似。