我有一个MySql数据库。 将电报信息保存到表格。
消息有Emoji
图标。它已经保存了???
我将数据库类型更改为utf8mb4_persian_ci
,将表更改为utf8mb4_persian_ci
。
但还是????表明。
我该怎么办?
答案 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);