什么是emoji
emoji在诞生之初有多种标准,所以早期兼容性是个问题。但是现在已经标准化了,是unicode的一部分。可以认为,跟字母、汉字一样,emoji就是unicode中一个普通的字符
但是emoji通过utf-8编码后,每个字符占4个字节,属于宽字符。而老版本的mysql只支持一个字符占3个字节,所以老版本的mysql是无法存储emoji的。新版本的mysql增加了字符集utf8mb4,可以支持单字符最多占4个字节。utf8mb4是utf8的超集,可以无需修改地支持原来的utf8字符
要让mysql存储emoji,需要满足2个条件:
1、mysql的charset设置为utf8mb4
2、客户端连接mysql的驱动,也需要设置为utf8mb4
mysql设置charset为utf8mb4
1、需要设置数据库实例的character_set_server参数为UTF8mb4
2、设置数据库字符集为utf8mb4
3、设置表的字符集为UTF8mb4
4、如果不设置表的字符集为UTF8mb4,也可以设置单独某个列的字符集为UTF8mb4
对于新开发的应用,建议都把数据库的字符集设置为UTF8mb4,以免后期迁移的麻烦
客户端连接mysql驱动
以node.js为例,需要设置charset参数为UTF8MB4_GENERAL_CI,全大写
其他平台如java,php,也需要做类似的配置
至于最终呈现的地方,包括html页面、iOS客户端,经实验发现,不需要特殊的设置,自然可以输入和展示emoji字符
不支持emoji的客户端
有些客户端不支持emoji,或者支持得不充分。我实验了一下:
navicat for mysql完全无法正确展示已经入库的emoji字符
webstorm也无法完全正确展示,部分emoji字符被截断而展示不全
CocoaRestClient可以完美展示,借助复制粘贴,也可以输入emoji字符
版权声明:本文为博主原创文章,未经博主允许不得转载。
分享到:
相关推荐
14. **支持emoji表情**:需要确认MySQL版本支持UTF8MB4字符集,不支持时需升级或转换字符集。 15. **数据字典维护**:通过SQL查询和数据库管理系统工具管理数据库元数据。 16. **开发规范执行**:制定SQL编码规范...
例如,MySQL的“utf8mb4”字符集是专为包含四字节的Unicode字符(包括许多emoji)设计的。同时,可能需要在后端使用诸如PHP、Node.js或Python等编程语言来处理这些数据,确保它们在存取时不会丢失或变形。 最后,...
例如,使用Node.js时,需要确保字符串是以UTF-8编码存储和发送的,以避免乱码。对于数据库操作,选择支持Unicode的数据库系统(如MySQL、PostgreSQL等),并确保字段类型为可存储Unicode的类型,如utf8mb4。 4. **...
五子棋游戏想必大家都非常熟悉,游戏规则十分简单。...Java、Python、Node.js、Spring Boot、Django、Express、MySQL、PostgreSQL、MongoDB、React、Angular、Vue、Bootstrap、Material-UI、Redis、Docker、Kubernetes
五子棋游戏想必大家都非常熟悉,游戏规则十分简单。...Java、Python、Node.js、Spring Boot、Django、Express、MySQL、PostgreSQL、MongoDB、React、Angular、Vue、Bootstrap、Material-UI、Redis、Docker、Kubernetes
此外,还可以利用第三方库,如`node-emoji`,它提供了丰富的API来轻松处理和渲染Emoji。 在Android应用开发中,使用Emoji需要考虑Android版本和设备差异。从Android 6.0(API级别23)开始,系统默认支持Emoji。对于...
功能未完全完成环境要求Nginx或Apache PHP7.1.3或更新版本作曲家MySQL5.7及以上或对应的MariaDB,数据库引擎使用InnoDB Node.js(含npm)推荐使用Homestaed作为开发环境安装克隆代码到自己想要的安装目录配置Apache...
这涉及到服务器端编程语言(如Java、Python或Node.js),以及数据库设计(如MySQL、MongoDB等),用于存储和检索emoji数据。 5. **API设计**:为了使前端与后端有效通信,需要设计RESTful API接口,以便前端请求...
在Discord上构建自动售票系统时,开发者可能利用了Discord.js这样的库,这是一个专门为Discord API设计的Node.js库,允许开发者通过JavaScript与Discord服务器进行交互。 详细说明: 1. **Discord.js**:为了构建...
在Web开发中,尤其是使用Node.js的Express框架进行后端开发时,处理中文字符可能会遇到乱码问题。这通常是因为客户端与服务器之间的编码设置不一致导致的。本文将详细介绍如何在Express应用中解决中文乱码问题,包括...
| Node.js | v18.16.1 | 管理与下载前端依赖、前端的运行环境 | | WebStorm | 2022.2.4 | 前端的集成开发环境,用于编写、运行本项目前端 | ## 二、数据库启动 > 主要是设置数据库的账号密码、导入数据文件。 * ...
这通常通过使用特殊的输入法库或表情插件实现,比如Emojify.js或React的emoji-mart。这些库可以识别用户输入的文本中的表情代码,并将其转换为对应的图像,增强用户在交流过程中的情感表达。 图片处理功能可能包括...
这通常涉及到后端服务器的架构设计,如使用Node.js搭配Express框架来创建API接口,处理用户的登录验证、消息存储和检索。为了保证消息的有序性和一致性,可能需要引入数据库系统,如MongoDB或MySQL,来存储和查询...