如何在HTML中显示表情符号字符

时间:2012-05-14 08:54:43

标签: iphone ios unicode emoji emoticons

我拯救了面部&#34;品尝美味的食物表情符号&#34;到数据库,并在php json_encode中读取它,显示&#34; uD83D \ uDE0B&#34;。但通常我们使用一个<img />标签来替换它。 但是,通常我只是发现这种格式&#39; \ uE056&#39;不是&#34; uD83D \ uDE0B&#34;,用pic E056.png替换。

我不知道如何让这些照片记录到某人身上。有人知道吗?

&#39; uD83D \ uDE0B&#39;之间的关系是什么?和&#39; \ uE056&#39;,他们都代表表情符号&#34;品尝美味的食物&#34;?

3 个答案:

答案 0 :(得分:9)

Unicode字符U + 1F60B FACE SAVORING DELICIOUS FOOD是一个所谓的Plane 1字符,这意味着它的UTF-16编码形式由两个16位代码单元组成,即0xD83D 0xDE0B。通常,Plane 1字符会导致相当大的问题,因为许多程序都没有准备好处理它们,并且很少有字体包含它们。

根据http://www.fileformat.info/info/unicode/char/1f60b/fontsupport.htm这个特殊字符仅存在于DejaVu字体和Symbola中,但我使用的DejaVu版本不包含它。

您可以在HTML中使用字符引用&#x1f608;,而不是处理编码问题(这些问题并不困难,但需要额外的信息)。但这并不能解决字体问题。我不了解iPhone字体,但一般来说,在网页浏览中,具有任何能够渲染角色的字体的计算机的可能性可能不到1%。所以你可能需要使用可下载的字体。使用图像显然更简单,更可靠。

U + E056是一个私人使用代码点,这意味着任何人都可以与他的兄弟或他自己就其含义达成一致,而不会问别人的想法。字体设计师可以为其指定任何字形。

答案 1 :(得分:3)

重要提示:截至此帖子,唯一不自动支持emojis的浏览器是chrome。

FOR CHROME: 根据您使用的服务器端语言,您应该能够找到一个可以为您转换表情符号的库。我最近需要用php解决这个问题并使用这个库:

https://github.com/iamcal/php-emoji

创建者基本上创建了一个精灵,并根据表情符号的unicode调整css。它不漂亮,但幸运的是,他/她为你做了所有笨拙的工作。如果您使用的是其他语言,您应该能够找到类似的东西。

答案 2 :(得分:0)

如何将这些小盒子放入php文件?

与任何其他Unicode字符相同。只需粘贴它们并确保您保存PHP文件并将PHP页面作为UTF-8提供。

当我将它放入php文件时,它会变成问号而不是

然后你有一个编码问题。使用你可以在第一时间正确看到的Unicode字符进行处理,例如ąαд™日本,然后再担心表情符号。

您的PHP文件应保存为UTF-8;它生成的页面应该作为Content-Type: text/html;charset:UTF-8(或类似的元标记); MySQL数据库应该使用UTF-8排序规则来存储数据,PHP应该使用UTF-8与MySQL通信。

然而。即使像这样正确处理所有内容,PC仍然不会显示表情符号。那是因为:

他们没有包含这些字符形状的字体,

表情符号仍然完全没有标准化。您发布的那些字符位于Unicode专用区域,这意味着它们根本没有任何官方含义。

日本的每个网络都使用不同的字符代码作为表情符号,映射到PUA中的不同区域。因此,即使在另一部手机上,它也可能无法显示正确的字符,除非您花费多年时间手动转换不同网络的表情符号代码。我猜你上面发布的是SoftBank(iPhone?)。

谷歌和苹果公司正在进行一项持续的提案,要求整理不同网络的表情符号,并为他们提供适当的Unicode标准化位置。在此之前,让表情符号在网络中一致显示是一种不快乐的练习。请参阅标准化工作中的character overview,了解您需要进行多少转换。

上帝,我讨厌表情符号。对于这样一堆无用的twee垃圾来说真是太痛苦了。