我試圖將表情符號存儲到我的服務器中的數據庫中。我使用AWS EC2實例作爲服務器,我的服務器的詳細信息如下所列:表情符號在MySQL 5.6中沒有正確存儲,並帶有排序規則utf8mb4
OS: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 \ 86 \ XF0 ...」列 '存儲在文本列在第1行
值文本' 是:???? ???? ???? ????
我的本地數據庫的相同場景工作和值正確存儲。除了操作系統(Windows),幾乎所有的配置在我的本地都很相似。
請做'SHOW CREATE TABLE test.emoji \ G' - 我想知道它在創建後是否被破壞了。 –
Wat什麼提示你運行失敗的INSERT? (該F09F9186看起來是正確的。) –
CREATE TABLE'emoji'( 'id' INT(10)無符號NOT NULL AUTO_INCREMENT, 'text' VARCHAR(255)NOT NULL, PRIMARY KEY('id') )ENGINE = InnoDB AUTO_INCREMENT = 4 DEFAULT CHARSET = utf8mb4 –