不知道从什么时候开始,Emoji 被越来越广泛的应用到了生活中,支持表情的 APP 里用,不支持表情的创造表情也要用,所以对于某些老项目就有问题了。
Ⅰ
MySQL 默认的 UTF8 格式是不支持表情存储的,但是从版本 5.5 开始支持的 UTF8MB4 可以存储。所以如果已经是新版 MySQL 那么执行一条 SQL 改一下存储编码就直接解决了,算是最快捷的解决方案了。
Ⅱ
当数据库这条路走不通的时候就只能通过代码折中了,在存库前将 emoji 编码,读取时将 emoji 还原。最简单的将整条数据进行 Base64 或者 URL 编码,但这样会极大增加存储长度。
所以更合理的是将 emoji 表情找出来,只对表情编码。于是 GitHub 上一搜,就找到了项目 Emoji-Java。
一个最简单的示例:
String raw = "Come on emoji: ☺ !";
// 打印 Come on emoji: :relaxed: !
System.out.println(EmojiParser.parseToAliases(raw));
String encode = "Come on emoji: :relaxed: !";
// 打印 Come on emoji: ☺ !
System.out.println(EmojiParser.parseToUnicode(encode));
这样只要在入库出库的时候进行编码解码就可以了,老项目完美支持。
Done !
大体看了下这个框架处理表情还是挺全的,也可以进行 html 转码或者直接移除等操作,具体用法可以参考 README。
发表回复