【发布时间】:2022-08-13 02:09:35
【问题描述】:
我从 microsoft word :) 复制并粘贴了一个表情符号,它变成了????并将其插入到 mysql 表中,其中表和字段具有字符集 utf8mb4 排序规则 utf8mb4_unicode_ci 和字段类型 longblob。表情符号作为表情符号插入到表格中。但是当我尝试在我的 html 页面中显示它时,它变成了这个奇怪的字符😊。我尝试使用htmlentities、htmlspecialchars、htmlspecialchars_decode,但它们都不能正确显示表情符号。
-
LONGBLOB 列没有字符集或排序规则属性。你是说长文吗?
-
以下是有关在 Web 演示文稿中启用 utf8 内容的一些重要读物:stackoverflow.com/questions/279170/utf-8-all-the-way-through
-
最初该字段是长文本,但我在 SO 中读到,为了能够存储表情符号,该字段需要是 blob 类型。由于内容可能很长,我将其改为 longblob。在将其更改为 longblob 之前,我尝试了其他建议,即更改字符集和排序规则,所以我只是在这里提到它以防万一
-
那个建议是不正确的。您可以将 utf8 存储在
CHAR(1)中。使用 BINARY 或 BLOB 或其同级类型是行不通的,因为它们存储二进制字节,没有关联的字符集。 -
好吧,我之前确实尝试过应用字符集和排序规则,但表情符号在 mysql 表中变成了
????。只有在我将字段类型更改为 longblob 后,表情符号才被正确插入。
标签: html mysql encoding character-encoding