解决跨平台 emoji 问题

Emojificiate 是一个服务器端实现的、可通过网络访问的 emoji,使用 Python 编写。
394 位读者喜欢这篇文章。
Hands holding a mobile phone with open on the screen

Opensource.com

谁不喜欢 emoji 呢? ?  为交流增添一些额外的色彩可以将基本的消息变成稍微花哨的东西。 ✨

然而,尽管它们在某些平台上看起来不错,但并非所有人都能以相同的方式看到 emoji。 即使 Unicode 声明了一个标准,以确保字符被严格定义并在任何使用 Unicode 的系统中兼容, 他们不负责 emoji 的设计

例如,如果你有一台 Windows 桌面电脑和一部 iPhone,你会注意到 emoji 在这两台设备上看起来不一样。如果你查看像 Emojipedia 这样的网站,你就会看到这些差异。像 闪光 这样的字符的差异可能不会让人感到困惑,但对于像 心形眼睛笑脸 这样的字符,在不同平台之间存在一些有趣的解读。

考虑到 Android 平台 emoji 从黑白到侧视图再到正面视图的演变,这些 emoji 的差异可能会改变对符号的解读。这方面的一个例子是 脸红 emoji。在 Apple 上,它总是看起来像是一种震惊(“糟糕”)和尴尬的表情。然而,在 Android 4.4 上,它可能暗示一种“害羞”的脸红。如果你从旧的 Android 手机向使用 Apple 设备的人发送这个 emoji,他们不会看到你看到的“害羞”,因此可能会对 emoji 做出非常不同的解读。在无法控制用于字符的视觉效果的情况下,误解的可能性是巨大的。

明尼苏达大学的一项研究表明,这个问题 不仅是跨平台的,而且也是跨平台之间的。自这项研究以来,其中一个被特别提及的字符,咧嘴笑眼笑脸,已经在 许多平台上得到了改进,因此它与 鬼脸 明显不同。

最重要的是,能够看到细节中的细微差别并非所有用户都能做到。根据你使用的是移动设备还是网页,以及屏幕的大小,emoji 可能会非常小且难以看清。允许某种机制让用户可以看到 emoji 的名称对于可用性和 可访问性来说非常棒。

GitHub 的 Web 界面通过在用户将鼠标悬停在 emoji 上时显示 emoji 的短代码来做到这一点。但是,GitHub 通常依赖于 emoji 的原生系统实现。Twitter 的 Web 界面更进一步,它用嵌入式图像替换了 emoji 字符,并在图像标签的标题属性中包含了完整的描述性文本。此外,Twitter 使用 alt 属性来存储原始字符,因此,如果你选择文本块并将其复制到剪贴板,则会复制 Unicode 字符。这是 HTML <img> 标签的一个功能,考虑到内联图像,这是一个非常棒的功能。

不幸的是,Twitter 提供的这种完整的 Web 可访问性功能并非开源。Twitter 确实提供了 twemoji,这是一个客户端 emoji 替换脚本,它可以处理 emoji 到图像的替换,但不包括描述性文本。对于客户端脚本来说,要做到这一点,它需要本地了解所有 emoji 的描述,这需要 几兆字节的数据(警告:大型文件链接)。

解决方案是什么?

Emojificiate 是一个概念验证,服务器端实现的完全可访问 Web 的 emoji,使用 Python 编写。它从 unicodedata 模块获取信息,该模块直接从 Unicode 标准编译而来。使用的版本取决于所使用的 Python 版本。Python 版本越新,Unicode 版本越新,可以识别的 emoji 就越多。 

在没有任何脚本来更有效地传达 emoji 字符本身的情况下,emoji 用户有责任确保他们的含义不会被其交流的任何读者错误地理解。通过限制误解的可能性,emoji 可以为文本交流增添一丝色彩,而不会带走任何含义。 ✨

Katie McLaughlin 将在德克萨斯州奥斯汀举行的 OSCON 2017 大会上发表演讲,Unicode 采用的力量 ⚡️ 和责任 ? ✨ 。如果您有兴趣参加会议,请在注册时使用此折扣码,为我们的读者提供: PCOS

标签
User profile image.
多年来,Katie 担任过许多不同的角色。她之前曾担任多种语言的软件开发人员、多种操作系统的系统管理员,以及许多不同主题的演讲者。当她不改变世界时,她喜欢烹饪、制作挂毯,并了解各种应用程序堆栈处理 emoji 的效果如何。

2 条评论

“谁不喜欢 emoji?”
我就是其中之一。我宁愿收到和发送措辞恰当的交流,而不是愚蠢的笑脸和傻气的缩写。

在过去我有一个手机的时候(在我好转之前),与其发送短信“今晚酒吧见?”,我会发送“嗨,约翰,你今晚要去皇家橡树酒吧吗?我计划大约晚上 8:15 到那里。希望见到你。祝好,马蒂”。

嗨,马蒂,你今晚要去皇家橡树酒吧吗?我计划 20:15 到那里。我们应该一起出去玩。祝好,塞思。

回复 作者 MartyMonroe

Creative Commons License本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。
© . All rights reserved.