如何将表情符号字符 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);