emoji的实现原理?

emoji就是一段Unicode,但为什么在手机浏览器里它就有了色彩,像个图片一样呢?

阅读 6.7k
4 个回答

因为字体文件,你甚至可以自己做一个字体文件。

android和ios的emoji长的也不一样。

你可以理解成宋体,微软雅黑。

然后也有一些产品的 emoji 是公司自研的。。可以明显看出和系统自带的不一样

<h1>123</h1>

就是一段字符串,为啥在浏览器上就变大了呢。

123

新手上路,请多包涵

对于字体,大部分认为程序中有一套字体字典,通过Unicode去匹配字体。
这样理解是有误的,因为Unicode匹配的不仅仅只有字体,不要把字体想成“字体”,应该想成是对象,Unicode只是对象的key,而value可以是任意。

value事先已经存放在了程序中,根据不同的value可以做不同逻辑处理与渲染,当然也可以是个图片,甚至另一个程序,只要程序事先做好了处理。

真正的区别在于emoji后来流行起来,甚至成为一个“标准”,谁不兼容谁就是跟大家过不去。所有浏览器,输入法,android,ios都兼容,让一些人以为emoji就是程序中本就通用的存在,其实各个平台都有自己的一套中间层逻辑,完全不同。

在开发过程中,我们经常使用配置文件,key&value形式,去做各种复杂但可能完全不同类型的处理。emoji也是同样的道理
QQ图片20200309190026.png

那是因为有字体文件。就像有的字体文件可以把简体字显示为繁体字,只要字体文件里定义了,那一个字要显示成表情图片完全可以的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题