MySQL支持emoji
方案1: 应用层支持
MySQL默认的数据库编码是utf8,对于emoji文字是不能直接存储的,要想存储emoji,有许多库支持对emoji的转换,例如将😊转存为:smile:
,放在数据库里,在从数据库里取出来的时候,再转换为😊,这是应用层的方案。
方案2: 存储层支持
MySQL编码设置为utf8mb4,直接支持emoji,不需要应用层的改动。
注意事项:
MySQL索引的长度不能大于767字节, utf8 1个字存3byte, utf8mb4存4byte,相对应VARCHAR的字节数分别是255和191,所以要把索引字段的长度限制到191。
1 | ALTER TABLE <table1> MODIFY COLUMN <col1_indexed> VARCHAR(191); |