表情符号字符 () 在 MySQL 版本 5.6 中不适用于 utf8mb4_bin
Emoji character () is not working with utf8mb4_bin in MySQL version 5.6
我正在尝试将表情符号保存到数据库记录中,但每次都无法正确保存。
我已经提到了这个 但仍然没有用。
根据上述问题的解决方案,我尝试将字符集从 utf8 更改为 utf8mb4,并从 utf8mb4_bin 更改排序规则。
我尝试了一切,比如重置为默认值,然后在数据库中更改它 table。我尝试了 utf8mb4_unicode_ci、utf8_unicode_ci 和 utf8mb4_bin,但没有用。
我使用的是 MySQL 5.6 版本。我正在使用以下查询更改排序规则
alter table `users` convert to character set utf8mb4 collate utf8mb4_bin;
以上代码运行良好,它正在更改数据库中的 UTF 类型。但是表情符号没有正确保存它保存为问号(????)
下面是我的数据库table结构示例:
CREATE TABLE IF NOT EXISTS `users` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'System generated id used for uniqueness',
`introduction` longtext COLLATE utf8mb4_bin,
`other_details` longtext COLLATE utf8mb4_bin,
PRIMARY KEY (`id`),
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin AUTO_INCREMENT=41213 ;
使用以下 PHP 代码保存表情符号:
$dom = new DOMDocument('1.0', 'UTF-8');
$strWithEmoji = "";
$fullContent = '<meta http-equiv="content-type" content="text/html; charset=utf-8">'
+ $strWithEmoji;
$this->save($fullContent); // Function for saving into database
我不知道确切存储了多少字节,但我只想保存
这个表情符号字符“”并将其存储为 4 个问号 (????)。
我尝试了以下链接中的所有解决方案,但对我没有用:
UTF-8 all the way through
连接需要指定utf8mb4
到MySQL。 DOMDocument
的幕后黑手是什么?
</code> 是十六进制 <code>F09F9880
,它应该在具有任何 utf8mb4_*
排序规则的 CHARACTER SET utf8mb4
列中工作。
这是另一个 link:
如果所有其他方法都失败,请在建立连接后从 PHP 执行 SET NAMES utf8mb4
。
我正在尝试将表情符号保存到数据库记录中,但每次都无法正确保存。
我已经提到了这个
根据上述问题的解决方案,我尝试将字符集从 utf8 更改为 utf8mb4,并从 utf8mb4_bin 更改排序规则。
我尝试了一切,比如重置为默认值,然后在数据库中更改它 table。我尝试了 utf8mb4_unicode_ci、utf8_unicode_ci 和 utf8mb4_bin,但没有用。
我使用的是 MySQL 5.6 版本。我正在使用以下查询更改排序规则
alter table `users` convert to character set utf8mb4 collate utf8mb4_bin;
以上代码运行良好,它正在更改数据库中的 UTF 类型。但是表情符号没有正确保存它保存为问号(????)
下面是我的数据库table结构示例:
CREATE TABLE IF NOT EXISTS `users` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'System generated id used for uniqueness',
`introduction` longtext COLLATE utf8mb4_bin,
`other_details` longtext COLLATE utf8mb4_bin,
PRIMARY KEY (`id`),
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin AUTO_INCREMENT=41213 ;
使用以下 PHP 代码保存表情符号:
$dom = new DOMDocument('1.0', 'UTF-8');
$strWithEmoji = "";
$fullContent = '<meta http-equiv="content-type" content="text/html; charset=utf-8">'
+ $strWithEmoji;
$this->save($fullContent); // Function for saving into database
我不知道确切存储了多少字节,但我只想保存
这个表情符号字符“”并将其存储为 4 个问号 (????)。
我尝试了以下链接中的所有解决方案,但对我没有用:
UTF-8 all the way through
连接需要指定utf8mb4
到MySQL。 DOMDocument
的幕后黑手是什么?
</code> 是十六进制 <code>F09F9880
,它应该在具有任何 utf8mb4_*
排序规则的 CHARACTER SET utf8mb4
列中工作。
这是另一个 link:
如果所有其他方法都失败,请在建立连接后从 PHP 执行 SET NAMES utf8mb4
。