MySQL数据库UTF8编码插入表情报错解决

282 阅读1分钟

MySQL数据库UTF8编码插入表情报错解决

问题: utf-8编码可2个字节、3个字节、4个字节的字符,但是MySQL的utf8编码只支持3字节的数据,而移动端的表情数据是4个字节的字符。如果直接往采用utf-8编码的数据库中插入表情数据,Java程序中将报SQL异常

字符集: 一般选择utf8,下面介绍一下utf8与utfmb4的区别!

utf8mb4兼容utf8,且比utf8能表示更多的字符。 utf8_general_ci 不区分大小写,这个你在注册用户名和邮箱的时候就要使用。 utf8_general_cs 区分大小写,如果用户名和邮箱用这个 就会照成不良后果 utf8_bin:字符串每个字符串用二进制数据编译存储。 区分大小写,而且可以存二进制的内容 utf8_unicode_ci和utf8_general_ci对中、英文来说没有实质的差别。 utf8_general_ci校对速度快,但准确度稍差。(准确度够用,一般建库选择这个) utf8_unicode_ci准确度高,但校对速度稍慢。

总结: 字段字符集:utf8mb4才可以存表情符(注:utf8mb4的最低mysql版本支持版本为5.5.3+)

下图为Navicat新建数据库示例: 在这里插入图片描述