本文共 628 字,大约阅读时间需要 2 分钟。
在实际开发中,可能会遇到需要存储表情符号的情况,尤其是在使用MySQL作为RDS时。如果不做任何处理,直接插入包含表情符号的文本,可能会导致“Incorrect String '\F0\F8'”等错误。这是因为MySQL数据库通常使用utf8编码,支持3字节的字符编码,而表情符号本身是4字节的UTF-16编码。为了解决这个问题,可以使用utf8mb4编码来实现兼容。
数据库字符集设置
将数据库表的字符集设置为utf8mb4。alter table test1 convert to character set utf8mb4;
客户端连接设置
在程序中设置连接池的初始化SQL,使客户端编码集为utf8mb4。dataSource.setInitSql("set names utf8mb4");
为什么MySQL需要专门处理表情符号,而Redis不需要?
这是因为MySQL是按字符进行编码的,而一个字符可能包含1-4个字节,这取决于所选的字符编码集。
而Redis是按字节进行编码的,因此不会出现类似MySQL遇到的问题。注意事项
转载地址:http://cddfk.baihongyu.com/