gpt4 book ai didi

mysql - 表情符号未正确存储在 MySQL 5.6 中,排序规则为 utf8mb4

转载 作者:可可西里 更新时间:2023-11-01 07:07:01 24 4
gpt4 key购买 nike

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

OS: ubuntu0.14.04.1

MySQL version: 5.6.19-0ubuntu0.14.04.1 - (Ubuntu)

Database client version: 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 ,  '👆 👇 👈 👉');

Inserted row id: 3

Warning: #1366 Incorrect string value: '\xF0\x9F\x91\x86 \xF0...' for column 'text' at row 1

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

相同的场景适用于我的本地数据库,并且值已正确存储。除了操作系统 (Windows),几乎所有配置在我的本地都是相似的。

最佳答案

我能够使用 SqlWorkbench 重现您的问题。

您的客户端很可能已经建立了到字符集与表字符集不匹配的数据库的连接:

在运行插入语句之前运行此语句以对齐连接的字符集和排序规则:

SET NAMES utf8mb4 COLLATE utf8mb4_general_ci

希望这有帮助,字符集可能很棘手。

关于mysql - 表情符号未正确存储在 MySQL 5.6 中,排序规则为 utf8mb4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30294502/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com