为什么这个unicode表情符号在推送时显示为字符而不是图像?

时间:2017-06-07 05:35:00

标签: html unicode emoji

我的网站上有几个月的表情符号,但是它突然显示为代码或字符而不是图像?当我在本地查看它时,它会显示它应该显示,但是当我在实时网站上查看它时,我会得到字符。我已经尝试清除缓存了。

此外,如果我用手指向上粘贴它也可以。我确信这是因为对unicode的工作方式缺乏了解,但我找不到合适的资源来帮助我。

示例:

enter image description here

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

HTML很可能不会在它(或网络服务器)声称它被编码的字符集中编码,导致浏览器错误地解释数据。

您显示的表情符号U + 1F447()在UTF-8中编码为字节F0 9F 91 87。当解释为Latin-1时,那些相同的字节为👇

您可能已将Web浏览器配置为强制将数据解释为UTF-8,这可以解释您正确查看表情符号的原因。仔细检查HTML的<meta>标记和/或您的网络服务器的Content-Type标题,以确保向浏览器报告正确的字符集。

或者,您可以使用HTML实体而不是原始UTF-8八位字节,然后您不必担心字符集。 U + 1F447的HTML实体可以写成:

&#128071;(?)

&#x1f447;(?)