如何保存表情符号字符Telegram到表MySql?

时间:2017-09-08 08:14:54

标签: mysql telegram-bot

我有一个MySql数据库。 将电报信息保存到表格。

消息有Emoji图标。它已经保存了??? 我将数据库类型更改为utf8mb4_persian_ci,将表更改为utf8mb4_persian_ci

但还是????表明。

我该怎么办?

1 个答案:

答案 0 :(得分:2)

表情符号通常作为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);