Unicode emojis不显示在浏览器中,但存储在mysql中

u0sqgete  于 2022-11-21  发布在  Mysql
关注(0)|答案(2)|浏览(177)

我 试图 在 网页 浏览 器 中 显示 存储 在 我 的 mysql 数据 库 中 的 表情 符号 , 但 遇到 了 问题 。 最初 , 表情 符号 被 翻译 成

????

中 的 每 一 个
所以 做 了 一些 研究 , 并 已 将 所 需 表 的 字符 集 更改 为 UTF8MB4 。 我 现在 能够 将 unicode 存储 在 数据 库 中 , 例如 。

😴
💛

格式
然而 , 当 我 通过 php 检索 字符 串 , 这些 都 是 存储 在 , 从 数据 库 中 , 我 只 看到 周围 的 代码 和 代码 本身 的 文本 , 而 不是 emoji 的

"had a great weekend with the family 💛"

格式
而 不是 :
"had a great weekend with the family 💛"
有 什么 建议 吗
编辑
解决 了 我 的 问题 我 用 的 是

htmlspecialcahrs()

格式
要 存储 的 字符 串 的 输入 。 这 是 将

&

格式

&amp

格式
导致 表情 符号 不能 被 识别 为

&amp#128564

格式
无效 。 我 必须 移除

htmlspecialchars

格式
重新 插入 字符 串 , 它 的 工作 !
谢谢 你 找 我

9o685dep

9o685dep1#

MySQL不涉及💛等html实体。其他东西正在生成它们。
如果你在php中使用json,检查第二个参数以避免htmlentities。
如果你被实体卡住了,你可以通过html_entity_decode()把它们变回字符。
最好始终使用utf8 mb 4;即数据库中的UNHEX('F09F929B'),PHP中不使用html*(),等等。

watbbzwu

watbbzwu2#

当我遇到类似的问题时,我发现对utf8_encode()的不必要调用影响了我的PHP输出。删除此调用解决了问题。

相关问题