【发布时间】:2018-06-28 08:35:28
【问题描述】:
我有一个自制的文本编辑器,具有可以将 unicode 字符插入(可编辑)div 的功能。例如,扬声器图标由以下字符串表示:
🔊
并且在将此字符串作为文本节点插入后,它将直接在 div 中正确呈现为
??????
当我导出编辑器的内容时,我基本上提交了 div.innerHTML 并存储在 mysql 数据库中。
然而,我希望 innerHTML 保留/保留字符的十六进制表示,而不是呈现的版本,例如输出字符串,如
this is a <span style='color:green'>speaker-icon: 🔊</span> in my message.
原因是在 mysql 中,图标被存储为 '???' . Mysql 使用 utf8mb4_general_ci 作为排序规则。此外,无论排序如何,我都希望尽可能地保持 HTML 的可移植性。
这可能吗?
PS 我使用 PHP 作为后端。
【问题讨论】:
-
在 MySQL 中正确存储它是一个非常可解决的问题:stackoverflow.com/a/34637891/476。我还认为,正确的 UTF-8 比 HTML 实体更便携,后者仅在 HTML 上下文中相关。
标签: javascript html unicode