为什么总是为表情符号存储短名称?

时间:2016-06-24 09:20:46

标签: database web-applications unicode emoji

EmojiOne's Github page,他们说:

  

在数据库中存储用户输入的文本时,应始终确保存储的文本仅包含:短名称:而不是Unicode表情符号字符[...]。

为什么总是一个坏主意?如果我的服务器语言,我的数据库和我的网络应用程序支持的浏览器版本都可以毫无困难地处理它们,问题出在哪里?

1 个答案:

答案 0 :(得分:1)

在阅读表情符号并观看emojione几天之后,我的结论是 - 我不会在你的存储机制/ db中存储短代码(emojione所谓的短名称)。正如您的问题中的评论所示,只需将字符(表情符号:)本身存储在您的数据库中。

对于刚开始学习表情符号的人来说,他们只是unicode标准中的另一个角色。字母,数字,感叹号,日文字符等都是unicode标准的字符部分。表情符号没什么特别之处,你可以像其他任何unicode字符一样想到它们。所有现代浏览器都会正确呈现它们。

我不存储短代码的主要原因是简单性。通过存储实际的unicode字符,在向用户显示字符时不必进行任何类型的转换。如果你要存储短代码,在这种情况下是:grinning:,你必须进行某种转换才能正确地向用户显示笑脸。

Emojione的图书馆能够将unicode本身或短代码转换为他们的图像。鉴于此,只需存储unicode并使用emojione的库进行转换,然后再向用户显示。如果你想在将来停止使用emojione并使用表情符号的标准浏览器实现,你将无需额外的工作。