颜文字在计算机上能否显示完全,跟哪些因素有关?

我能想到的就是跟字体有关,有些字符在“宋体”里能显示,在“微软雅黑”里就显示不了。但是据说还有其他影响很多因素,比如系统是xp还是win7还是苹果啊,浏览器不同啊之类的。

(ง •̀_•́)ง 比如这个,在微软雅黑里面小眉毛就都显示不出来,都是方框,好丑~ (눈_눈)



推荐  (2) | 11人关注关注
6个答案
37 0

切斯特日语语言学 PhD 在读,设计爱好者

2013-07-28 23:54

颜文字有两种实现方式,一是将多个字符组合在一起,二是使用单一字符。但无论用哪种方式,能否正常显示都依赖用来显示的字体

如今的操作系统、程序、字体等一般都遵循 Unicode 编码集来设计,那么一个字符对应的就是一个 Unicode 码位。我们使用多个字符组合为表情文字的时候,经常会使用一些不常用的字符,但大多数字体只包含常用字符,比如 (ง •̀_•́)ง 这个表情,眉毛部分用到了 U+0300 和 U+0301。当我们试图用一个不包含 U+0300 和 U+0301 的字体,比如说微软雅黑,来显示这个表情时,理论上来说眉毛部分就会消失不见。如果某字体里缺少其中任何一个字符,用它就无法完美显示这个表情。下图是雅黑 U+02** 到 U+03** 区间包含的符号,我们可以看到,雅黑不包含上述的两个字符。

操作系统使用一种叫做“回退”(fallback)的方式来避免此类问题的出现。简单说,就是当首选字体无法显示某些字符的时候,就把这些字符交由备用字体显示。以 Windows 为例:

每个语种的文字都预先匹配有一个默认字体,比如拉丁字符默认是 Segoe UI,简体中文字符默认是雅黑等等。在需要字体回退的时候,系统先按照当前的区域设置(地区、语种)对应的回退顺序,依次调用这些字体。还是以上面的表情为例,在首选雅黑来显示的情况下:

  • 空格、左右括号、眼睛、嘴巴,雅黑成功显示;
  • 雅黑无法显示眉毛部分,于是回退到默认的拉丁字体 Segoe UI;

  • 手臂部分是泰文 U+0E07,雅黑和 Segoe UI 都无法显示,于是继续回退过程,直到回退到可用的泰文字体 Leelawadee UI。

最终结果就是三者的结合:

当然,不同程序的回退逻辑可能会有不同,所以最终效果并不是绝对一定的。

Windows 还有一套叫字体链接(font linking)的历史技术,原理大致和回退一样。区别是这种方式无视语种,而且回退顺序可以在注册表里手动修改。类似的,OS X 系统下的回退也是可以手动修改的。

结论:某字体如果缺字较多,使用它就有可能无法正常显示颜文字。因此请尽量不要使用某些「精简」字体。

#题外话

系统界面是中文还是英文一般不影响字符显示,因为同一版本的系统内置的核心字体是一样的。当然,版本越高的系统,无法显示的情况就越少。

有的浏览器( 比如 Chrome)无视系统的回退逻辑或者不支持回退,也会导致字符无法显示。但这依然是字体的原因。

另外,开头还提到可以用单一字符显示颜文字,但这需要字体本身内置有 Unicode 定义的颜文字区里的字符。使用最新版本的 iOS 或 Android 的朋友应该对此非常熟悉。提供一行,供大家测试自己的系统是否能正常显示:

😄 😃 😀 😊 😞 😣 😢 😂 😭 😋 😷 😎 😴 😵

6 0

红花数字媒体技术学士

2013-07-26 17:09

赞同楼主说的跟字体有关
复制 那个小眉毛表情 然后改用不同字体显示 出现各种奇葩(介个过程很好玩……)

个人认为系统和浏览器最终影响的还是字体
有的字体在某些系统下不存在或没有安装 这时候系统应该会用默认字体显示 就无法保证颜文字的效果了
浏览器也有默认使用的字体 如果网页制作者没有设置颜文字出现的那段文字的字体 就会用默认字体显示
或是用户自己额外定义了网页的显示字体(可能设置者自己过一段时间都不记得自己做过这件事……)呐 结果同上~~

0 0

苹果手机就可以完全显示,中文字体是 华文细黑, 英文是helvetica 但是我在电脑上这么设置了之后 还是显示不出来

0 0

求解释这个颜文字是什么样的存在......... (҉´҉・҉ω҉・҉`҉)

查看更多

添加回答

登录 后回答问题,你也可以用以下帐号直接登录

相关问答

关于我们 加入果壳 媒体报道 帮助中心 果壳活动 家长监控 免责声明 联系我们 移动版 移动应用

©果壳网    京ICP证100430号    京网文[2018] 6282-492号    新出发京零字东150005号     京公网安备11010502007133号

违法和不良信息举报邮箱:jubao@guokr.com    举报电话:18612934101    网上有害信息举报专区    儿童色情信息举报专区