开发者社区> 问答> 正文

技术运维问题 - MYSQL使用 -RDS MySQL使用utf8mb4字符集存储emoji表情


1. 基本原则
2. 三个条件的说明
2.1 应用客户端
2.2 应用到 RDS MySQL 实例的连接
2.3 RDS 实例配置
3. 通过 set names 命令设置会话字符集




1. 基本原则


如果要实现存储 emoji 表情到 RDS MySQL 实例,需要客户端、到 RDS MySQL 实例的连接、RDS 实例内部 3 个方面统一使用或者支持 utf8mb4 字符集。
注:关于 utf8mb4 字符集,请参考 MySQL 官方文档

2. 三个条件的说明



2.1 应用客户端


客户端需要保证输出的字符串的字符集为 utf8mb4。

2.2 应用到 RDS MySQL 实例的连接


以常见的 JDBC 连接为例:

  • 对于 JDBC 连接,需要使用 MySQL Connector/J 5.1.13(含)以上的版本。

  • JDBC 的连接串中,建议不配置 characterEncoding 选项。

注:关于 MySQL Connector/J 5.1.13,请参考 MySQL 官方 Release Notes

2.3 RDS 实例配置


Step 1. 在控制台 [/url] 参数配置 中修改 character_set_server 参数为 utf8mb4。
[url=http://img01.taobaocdn.com/tfscom/TB1pQQWHXXXXXasXFXXXXXXXXXX.png]
Step 2. 设置库的字符集为 utf8mb4
[url=http://img01.taobaocdn.com/tfscom/TB1VrQ6HXXXXXXgXpXXXXXXXXXX.png]
Step 3. 设置表的字符集为 utf8mb4
[url=http://img01.taobaocdn.com/tfscom/TB163g5HXXXXXX0XpXXXXXXXXXX.png]

3. 通过 set names 命令设置会话字符集


对于 JDBC 连接串设置了 characterEncoding 为 utf8 或者做了上述配置仍旧无法正常插入emoji数据的情况,建议在代码中指定连接的字符集为 utf8mb4,样例代码如下:

  1. String query = set names utf8mb4”; stat.execute(query);


如问题还未解决,请联系[url=https://selfservice.console.aliyun.com/ticket/createIndex.htm]售后技术支持

展开
收起
梨好橙 2018-09-23 00:16:26 2091 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像