我 试图 在 网页 浏览 器 中 显示 存储 在 我 的 mysql 数据 库 中 的 表情 符号 , 但 遇到 了 问题 。 最初 , 表情 符号 被 翻译 成
????
中 的 每 一 个
所以 做 了 一些 研究 , 并 已 将 所 需 表 的 字符 集 更改 为 UTF8MB4 。 我 现在 能够 将 unicode 存储 在 数据 库 中 , 例如 。
😴
💛
格式
然而 , 当 我 通过 php 检索 字符 串 , 这些 都 是 存储 在 , 从 数据 库 中 , 我 只 看到 周围 的 代码 和 代码 本身 的 文本 , 而 不是 emoji 的
"had a great weekend with the family 💛"
格式
而 不是 :
"had a great weekend with the family 💛"
有 什么 建议 吗
编辑
解决 了 我 的 问题 我 用 的 是
htmlspecialcahrs()
格式
要 存储 的 字符 串 的 输入 。 这 是 将
&
格式
至
&
格式
导致 表情 符号 不能 被 识别 为
&#128564
格式
无效 。 我 必须 移除
htmlspecialchars
格式
重新 插入 字符 串 , 它 的 工作 !
谢谢 你 找 我
2条答案
按热度按时间9o685dep1#
MySQL不涉及
💛
等html实体。其他东西正在生成它们。如果你在php中使用json,检查第二个参数以避免htmlentities。
如果你被实体卡住了,你可以通过
html_entity_decode()
把它们变回字符。最好始终使用utf8 mb 4;即数据库中的
UNHEX('F09F929B')
,PHP中不使用html*()
,等等。watbbzwu2#
当我遇到类似的问题时,我发现对
utf8_encode()
的不必要调用影响了我的PHP输出。删除此调用解决了问题。