Emoji 简介

一、含义

Emoji 是可以插入文字的图形符号。

它是一个日语词,e表示"絵",moji表示"文字"。连在一起,就是"絵文字"。

Emoji 在上个世纪90年代,由日本电信商引入服务,最早用于在短消息之中插入表情。2007年,苹果公司的 iPhone 支持了 Emoji,导致它在全世界范围的流行。

二、Unicode 标准化

早期的 Emoji 是将一些特定的符号组合替换成图片,比如将:)替换成?。这种方法很难标准化,能够表达的范围也有限。

2010年,Unicode 开始为 Emoji 分配码点。也就是说,现在的 Emoji 符号就是一个文字,它会被渲染为图形。

由于越来越受欢迎,Emoji 的国际标准在 2015 年出台,目前已经是 5.0 版了。

  • Emoji 1.0:2015年8月
  • Emoji 2.0:2015年11月
  • Emoji 3.0:2016年6月
  • Emoji 4.0:2016年11月
  • Emoji 5.0 (beta):2017年3月

截止2017年4月,列入 Unicode 的 Emoji 共有2389个

三、渲染实现

Unicode 只是规定了 Emoji 的码点和含义,并没有规定它的样式。举例来说,码点U+1F600表示一张微笑的脸,但是这张脸长什么样,则由各个系统自己实现。

因此,当我们输入这个 Emoji 的时候,并不能保证所有用户看到的都是同一张脸。如果用户的系统没有实现这个 Emoji 符号,用户就会看到一个没有内容的方框,因为系统无法渲染这个码点。

目前,苹果系统安卓系统TwitterGithubFacebook 都有自己的 Emoji 实现。

四、使用方式

Emoji 虽然是文字,但是无法书写,必须使用其他方法插入文档。

(1)最简单的方法当然是复制/粘贴,你可以到 getEmoji.com 选中一个 Emoji 贴在自己的文档即可。

(2)另一种方法是通过码点输入 Emoji。以 HTML 网页为例,将码点U+1F600写成 HTML 实体的形式😀(十进制)或😀(十六进制),就可以插入网页。码点到这个页面查询。

(3)JavaScript 输入 Emoji,可以使用 node-emoji 这个库。

var emoji = require('node-emoji'); // 返回 coffee 的 Emoji emoji.get('coffee'); // 返回文字标签对应的 Emoji // https://www.webpagefx.com/tools/emoji-cheat-sheet/ emoji.get(':fast_forward:'); // 将文字替换成 Emoji emoji.emojify('I :heart: :coffee:!'); // 随机返回一个 Emoji emoji.random(); // 查询 Emoji // 返回结果是一个数组 emoji.search('cof');

(4)还可以通过 CSS 插入 Emoji。

<link href="https://afeld.github.io/emoji-css/emoji.css" rel="stylesheet"> <i class="em em-baby"></i>

五、Emoji 组合

Unicode 除了使用单个码点表示 Emoji,还允许多个码点组合表示一个 Emoji。

其中的一种方式是"零宽度连接符"(ZERO WIDTH JOINER,缩写 ZWJ)U+200D。举例来说,下面是三个 Emoji 的码点。

  • U+1F468:男人
  • U+1F469:女人
  • U+1F467:女孩

上面三个码点使用U+200D连接起来,U+1F468 U+200D U+1F469 U+200D U+1F467,就会显示为一个 Emoji ?‍?‍?,表示他们组成的家庭。如果用户的系统不支持这种方法,就还是显示为三个独立的 Emoji ???。

六、趣闻

根据 emojitracker 的调查,全世界最流行的 emoji,第一名是笑出眼泪 ?,第二名是红心❤️。

日历的 Emoji ?(U+1F4C5) 在苹果系统之中,一律是7月17日。这是苹果公司发布 iCal 的日子。有人戏称这个日子是"世界 Emoji 日"。

七、参考链接

(完)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据小魔方

这么牛X的包,一般人我不告诉他!!!

本文将给大家介绍一个ggplot2灰常牛X的可视化扩展包,我将该包主页的包用法介绍整理成中文,分享给大家。 包名叫geofacet,有经验的charter大概...

35350
来自专栏calmound

cocos2d-x 3.0的入门程序:helloworld

看过了这么多不同方向的应用,发现很多程序入门都是helloworld helloworld是所有程序员的绝对初恋 先看一下程序的运行结果吧 ? 然后就是他...

36670
来自专栏万波的专栏

three.js 粒子效果(分别基于 CPU & GPU 实现)

前段时间做了一个基于 CPU 和 GPU 对比的粒子效果丢在学习 WebGL 的 RTX 群里,技术上没有多作讲解,有同学反馈看不太懂 GPU 版本,干脆开一篇...

88510
来自专栏tkokof 的技术,小趣及杂念

随便聊聊水面效果的2D实现(一)

  一直想随便写写自己关于水面效果2D实现的一些了解,可惜各种原因一直拖沓,幸而近来有些事情终算告一段落,自己也有了一些闲暇时间,于是便有了这篇东西 :)

19740
来自专栏Nian糕的私人厨房

JavaScript 展开全文和收起全文

我们在浏览文章列表页的时候,往往只会看到一部分的摘要,在摘要下面会有一个展开全文的按钮,点开后就能看到完整内容,而原来的展开全文按钮此时变成了收齐全文的按钮,同...

17340
来自专栏小樱的经验随笔

1022: [SHOI2008]小约翰的游戏John【Nim博弈,新生必做的水题】

1022: [SHOI2008]小约翰的游戏John Time Limit: 1 Sec  Memory Limit: 162 MB Submit: 2709 ...

33480
来自专栏Crossin的编程教室

我在Python的艳阳里,大雪纷飞

你在南方的艳阳里大雪纷飞;我在北方的寒夜里四季如春。 昨天,南方不少地区,尤其是长江中下游一带迎来了一场难得的大雪。虽说给出行带来极大的不便,但也让我们这些没怎...

299110
来自专栏Kirito的技术分享

中文文案排版指南

目录 空格 中英文之间需要增加空格 中文与数字之间需要增加空格 数字与单位之间需要增加空格 全角标点与其他字符之间不加空格 -ms-text-autospac...

50680
来自专栏前端说吧

JS-利用ajax获取json数据,并传入页面生成动态tab

39370
来自专栏一枝花算不算浪漫

[jQuery学习系列六]6-jQuery实际操作小案例

474170

扫码关注云+社区

领取腾讯云代金券