如何将表情符号字符 Telegram 保存到 table MySql?
how to save emoji character Telegram to table MySql?
我有一个 MySql 数据库。
将 Telegram 的消息保存到 Table.
消息有 Emoji
图标。它保存了???。
我将数据库类型更改为 utf8mb4_persian_ci
,并将 Table 也更改为 utf8mb4_persian_ci
。
但还是????表明。
我该怎么办?
表情符号通常作为 unicode 字符进行管理,在电报中我认为是一样的(检查这个)。
因此,如果这些是 unicode 字符,您可以将其转换为十六进制实体,然后保存。
在PHP中我使用了这个函数:
preg_replace_callback('/[\x{80}-\x{10FFFF}]/u', function ($match) {
list($utf8) = $match;
$binary = mb_convert_encoding($utf8, 'UTF-32BE', 'UTF-8');
$entity = vsprintf('&#x%x;', unpack('N', $binary));
return $entity;
}, $your_text_here);
我有一个 MySql 数据库。 将 Telegram 的消息保存到 Table.
消息有 Emoji
图标。它保存了???。
我将数据库类型更改为 utf8mb4_persian_ci
,并将 Table 也更改为 utf8mb4_persian_ci
。
但还是????表明。
我该怎么办?
表情符号通常作为 unicode 字符进行管理,在电报中我认为是一样的(检查这个)。 因此,如果这些是 unicode 字符,您可以将其转换为十六进制实体,然后保存。
在PHP中我使用了这个函数:
preg_replace_callback('/[\x{80}-\x{10FFFF}]/u', function ($match) {
list($utf8) = $match;
$binary = mb_convert_encoding($utf8, 'UTF-32BE', 'UTF-8');
$entity = vsprintf('&#x%x;', unpack('N', $binary));
return $entity;
}, $your_text_here);