• 1
  • 2
  • 3
  • 4
  • 5
mysql数据库问题 首 页  »  帮助中心  »  数据库  »  mysql数据库问题
关于RDS MySQL使用UTF8mb4字符集存储emoji表情的一些事项
发布日期:2015-11-6 13:11:31

  关于RDS MySQL使用UTF8mb4字符集存储emoji表情的一些事项

  编码字符集方面:假如需要存储emoji表情,则需要客户端、到RDS MySQL实例的连接、RDS实例内部统一使用或者支持UTF8mb4字符集等几个条件。

  UTF8mb4字符集方面的内容,我们可以参考MySQL官方文档:

  http://dev.mysql.com/doc/refman/5.5/en/charset-unicode-utf8mb4.html

  这里对几个条件分别作如下说明:

  1. 客户端

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

  2. 到RDS MySQL 实例的连接

  我们以常见的JDBC连接为例,对于JDBC连接,需要使用MySQL Connector/J 5.1.13(含)以上的版本。

  而对于MySQL Connector/J 5.1.13,请参考MySQL官方Release Notes:

  http://dev.mysql.com/doc/relnotes/connector-j/en/news-5-1-13.html

  JDBC 的连接串中,我们建议不配置characterEncoding选项,若想要配置,建议将其配置为UTF8。

  3. RDS实例配置如下:

  3.1 在【控制台】->【参数配置】中修改character_set_server参数为UTF8mb4。

  

 

  3.2 设置库的字符集为UTF8mb4

  

 

  3.3 设置表的字符集为UTF8mb4

  

 

  4. 对于JDBC连接串设置了characterEncoding为UTF8 或者做了上述配置依然无法正常插入emoji数据的情况,建议在代码中指定连接的字符集为UTF8mb4,参考样例代码如下:

  String query = "set names utf8mb4";

  stat.execute(query);