database - 为什么总是存储表情符号的简称?

标签 database web-applications unicode emoji

关于 EmojiOne's Github page ,他们说:

When storing user inputted text in your database, [...] you should always make sure you are storing text containing only :shortnames: and not Unicode emoji characters [...].

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

最佳答案

在阅读表情符号和 emojione 几天后,我的结论是——我不会在你的存储机制/数据库中存储短代码(emojione 称为短名称)。正如您问题中的评论所建议的那样,只需将字符(表情符号:😀)本身存储在您的数据库中。

对于那些刚开始了解什么是表情符号的人来说,它们只是 unicode 标准中的另一个字符。字母、数字、感叹号、日语字符等都是 unicode 标准的字符部分。表情符号没有什么特别之处,您可以将它们想象成任何其他 unicode 字符。所有现代浏览器都会正确呈现它们。

我不存储简码的主要原因是简单。通过存储实际的 unicode 字符😀,在向用户显示字符时无需进行任何类型的转换。如果您要存储简码,在本例中为 :grinning:,您将必须进行某种转换才能正确地向用户显示一张笑脸。

Emojione 的库能够将 unicode 本身或短代码转换为它们的图像。鉴于此,只需存储 unicode 并使用 emojione 的库在显示给用户之前转换它们。如果您以后想停止使用 emojione 并使用 emoji 的标准浏览器实现,您将没有额外的工作要做。

关于database - 为什么总是存储表情符号的简称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38009825/

相关文章:

unicode - 这个字符分隔符是什么:^ _?

database - 如何摆脱#func!出现在MS Access的查询表中?

mysql - 电子商务网站的自定义产品属性

django - angular.js 的一个很好的服务器端解决方案

javascript - 如何在现代网络应用程序中导航回来

python - 整合 html、css 和 python

c++ - NSString & unichar 常量去重

unicode - NFC 标准化边界是否也扩展了字素簇边界?

mongodb - Grails-MongoDB和插件域类

php - 将字符串从应用程序发送到服务器