技术运维问题 - MYSQL使用 -RDS MySQL使用utf8mb4字符集存储emoji表情-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

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

李沃晟 2018-09-23 00:16:26 960

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]售后技术支持
存储 运维 关系型数据库 MySQL Java 数据库连接 RDS
分享到
取消 提交回答
全部回答(0)
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

推荐文章
相似问题