让你的App支持emoji
来源:互联网 发布:打印机软件怎么安装 编辑:程序博客网 时间:2024/05/21 03:27
emoji
绘文字(日语:絵文字/えもじ emoji)是日本在无线通信中所使用的视觉情感符号,绘意指图形,文字则是图形的隐喻,可用来代表多种表情,如笑脸表示笑、蛋糕表示食物等。
自苹果公司发布的iOS 5输入法中加入了emoji后,这种表情符号开始席卷全球,目前emoji已被大多数现代计算机系统所兼容的Unicode编码采纳,普遍应用于各种手机短信和社交网络中。
自苹果公司发布的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 = FALSEcharacter-set-server = utf8mb4collation-server = utf8mb4_unicode_ciinit_connect=’SET NAMES utf8mb4' [mysql]default-character-set=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即可。
阅读全文
0 0
- 让你的App支持emoji
- 让你的网站和移动端支持Emoji
- 让你的APP支持iPhone5
- 让你的APP支持iPhone5
- iOS 让你的APP支持iPhone5
- 让你的APP支持iPhone5
- 让你的APP支持不同的设备
- 让你的APP支持iPhone5 (转自cocoChina)
- 让你的Chrome App支持多语言(i18n)
- iOS 9:快速让你的APP支持spotlight搜索
- 如何让你的Genymotion支持ARM架构APP
- 让Mysql支持Emoji表情
- 让Mysql支持Emoji表情
- 让Mysql支持Emoji表情
- 让MySQL支持Emoji表情
- 让mysql支持emoji表情
- 让Mysql支持Emoji表情
- 让 MySQL 支持 emoji 存储
- 使用线性回归模型在比萨训练样本上进行拟合
- 如何使用Ansible 2的API做python开发
- MacOS AppKit文档翻译
- nginx [error] 15644#0: *112680 recv() failed (104: Connection reset by peer) while reading response
- JavaBean学习中邮箱验证正则表达式问题
- 让你的App支持emoji
- 在webstorm中如何关联github项目
- 低版本的兼容性问题
- unity3d在菜单栏,一键设置Player setting及自动打包并设置apk的存储位置
- Android安全之制作system方法
- zookeeper 日志清除机制
- spring,mybatis整合报错Result Maps collection already contains value for ...BaseResultM
- 类圆颗粒分割与识别
- css 实现 section(块) 的左右滑动,以及块内文字居中的效果