让你的App支持emoji
2017-09-15 15:04
239 查看
emoji
绘文字(日语:絵文字/えもじ emoji)是日本在无线通信中所使用的视觉情感符号,绘意指图形,文字则是图形的隐喻,可用来代表多种表情,如笑脸表示笑、蛋糕表示食物等。自苹果公司发布的iOS 5输入法中加入了emoji后,这种表情符号开始席卷全球,目前emoji已被大多数现代计算机系统所兼容的Unicode编码采纳,普遍应用于各种手机短信和社交网络中。
实现原理
一般来说,有两种方式实现App中对于emoji的支持。第一种方式,是直接使用标准的emoji规则,一个emoji表情对应的是一个长度为4字节的utf-8字符,图案的对应可参考链接,无论是Android还是iOS系统,都已经提供了对于emoji的支持,因此开发者主要需要考虑的就是如何让我们的数据库支持emoji,本文主要介绍此方式中使用mysql支持emoji的方案。另一种方式需要自定义协议,在字符串中通过自己特殊的协议进行标记,而客户端将自定义的表情资源放在本地,获取到内容后根据协议进行处理。这种方式最大的好处就是可以自己定义表情的样式,但是开发的的成本较高。配置MySQL
在mysql中,我们常用的utf-8字符包含2-3个字节,而emoji包含4个字节,因此是不能直接插入的,需要将数据库的编码由utf-8改为utf8mb4。首先,需要修改mysql的配置文件,Linux下一般为/etc/my.cnf,Windows下为my.ini,在里面增加以下配置[client] default-character-set=utf8mb4 [mysqld] character-set-client-handshake = FALSE character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci init_connect=’SET NAMES utf8mb4' [mysql] default-character-set=utf8mb4
然后,修改相应数据库表和列的字符编码为utf8mb4,可以通过工具修改,也可以直接进入控制台
1) 修改database的字符集: ALTER DATABASE 数据库名 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci; 示例: ALTER DATABASE xxxdb CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
2) 步骤1)执行完成之后,需要执行use 数据库名,指明当前需要进行字符集修改的数据库;示例:use xxxdb;
3)修改table的字符集: ALTER TABLE 表名 CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; 示例: ALTER TABLE user_comments CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
4) 修改column的字符集: ALTER TABLE 表名 CHANGE 字段名 字段名 该字段原来的数据类型 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; 示例: ALTER TABLE user_comments CHANGE content content TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
最后,重启mysql即可。
相关文章推荐
- iOS APP 支持IPv6-only的注意事项及兼容性考虑
- app在线支持
- 让自己的Android应用支持appwidget
- 在weblogic11g发布该项目时遇到错误(不支持web-app_3_0)
- iOS-生成国际化包-配置App多语言支持
- 【iOS】如何设置app支持文件共享
- Android app widget 支持的Layout和widget组件
- mysql/Java服务端对emoji的支持
- phonegap2.9 ios提交app 报"ERROR ITMS-90086"错误,如何支持64位ios
- Android创建多语言支持app
- mysql/Java服务端对emoji的支持
- APP支持
- create-react-app修改为多页面支持的方法
- android AppWidget 支持ListView
- ASP .NET CORE 根据环境变量支持多个 appsettings.json
- mysql/Java服务端对emoji的支持
- 好推二维码如何通过应用宝微下载支持微信自动打开APP下载?
- app 支持文件分享
- Mysql之——支持emoji 表情符号 升级编码为UTF8MB4
- 不支持表情包的自定义控件NoEmojiEditText