为什么不在我的HTML和/或PHP中渲染表情符号?

时间:2016-01-05 21:28:28

标签: html unicode fonts character-encoding emoji

为了更多地了解字体渲染/编码,我更加好奇为什么当我将表情符号复制并粘贴到空白<html>页面并简单地将.html文件保存在我的机器上时,或者甚至启动本地php服务器并在那里提供带有上述表情符号的文件,它们或者分别显示为一些奇怪的字符(ðŸ〜‡ðŸμðŸ™)或空白。然而,我知道当我直接输入这个堆栈溢出请求textarea时,它们将在我的浏览器中正确呈现,并在查看此页面时按预期显示。

我的理解是,由于mac osx现在附带了正确的表情符号字体,因此它们应该被渲染为。那么您现在正在查看的HTML页面与我保存在计算机上的本地页面之间的断开连接在哪里?

推荐阅读将不胜感激! :)错误....

1 个答案:

答案 0 :(得分:8)

当Web服务器将文件发送到浏览器时,它也会发送一组HTTP标头,转发有关内容类型,缓存等的信息。内容类型标头还会通知浏览器使用了哪种编码:

Content-Type: text/html; charset=utf-8

如果您在本地打开该文件,那么您的浏览器只会获取该文件,并且必须猜测编码。您可以在HTML head中声明编码:

<meta charset="utf-8">