MySQL存储Emoji表情符号问题及解决方案

emoji就是表情符号;词义来自日语(えもじ,e-moji,moji在日语中的含义是字符),现已普遍应用于手机短信和网络聊天软件,是很流行使用的一种表情字符。


MYSQL 5.5 之前, UTF8/utf8mb3 编码只能存储最大3个字节的字符, 从MYSQL5.5开始,可支持4个字节UTF编码字符,但要特殊标记,即显式定义表或字段为utf8mb4编码类型。如果表或字段已经定义为utf8/utf8mb3,可使用alter table语句将utf8/utf8mb3升级为utf8mb4。
    
对应语句如下:
    ALTER TABLE app_message MODIFY title  VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '标题';


说明:

1.对于BMP(Basic Multilingual Plane)字符,utf8跟utf8mb4具有相同的存储特性:使用相同的编码和编码值,以同样的长度存储。

2.将表或列的字符编码类型由utf8升级成utf8mb4时,不需要转换储存的字符数据,因此也不会丢失数据


utf8mb4的详细说明碱MySQL官方文档:

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

你可能感兴趣的:(最佳实践,疑难杂症)