基本原则
如果要实现存储 emoji 表情到 RDS MySQL 实例,需要客户端、到 RDS MySQL 实例的连接、RDS 实例内部 3 个方面统一使用或者支持 utf8mb4 字符集。
注:关于 utf8mb4 字符集,请参考 MySQL
官方文档
2. 三个条件的说明
2.1 应用客户端
客户端需要保证输出的字符串的字符集为 utf8mb4。
2.2 应用到 RDS MySQL 实例的连接
以常见的 JDBC 连接为例:
String query = “set names utf8mb4”;
stat.execute(query);
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
确保在阿里云RDS MySQL实例中存储emoji表情,确实需要遵循您提到的几个关键步骤,以确保整个数据传输链路支持utf8mb4字符集。utf8mb4字符集是UTF-8的扩展,能够支持存储包括emoji在内的4字节Unicode字符。下面是基于您的描述整理的操作指南:
characterEncoding
,因为最新驱动默认支持utf8mb4。如果已设置且遇到问题,考虑移除该设置或确保其为utf8mb4。character_set_server
参数,将其值修改为utf8mb4
,并保存设置。注意,此操作可能需要重启实例生效。ALTER DATABASE your_database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE your_table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
SET NAMES utf8mb4;
或者在代码中执行这一命令,如您提供的Java示例代码所示。
按照以上步骤操作,你应该能够在阿里云RDS MySQL实例中成功存储和检索emoji表情了。