1.BUG重现
这里我做了一个简单的试验,来验证utf8在mysql中存在的问题:
建立数据表:
CREATE TABLE `user` ( `id` int(10) NOT NULL AUTO_INCREMENT COMMENT '自增id', `nickname` varchar(255) CHARACTER SET utf8 DEFAULT NULL COMMENT '昵称', `sex` varchar(255) DEFAULT NULL COMMENT '性别', `age` int(10) DEFAULT NULL COMMENT '年龄', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COMMENT='测试utf8问题重现'这里我们直接指定了nickname字段的字符编码为utf8,然后我向里面插入一条普通数据,使用mybatis的插入数据库语句如下:
INSERT INTO `user` ( `nickname`, `sex`, `age`) VALUES ( '张三', '男', '18');的确是像我们平时操作一样插入成功了,似乎没有什么问题,但这里我们再测试一下昵称中带有表情符(emoji)的数据尝试一下:
张三 An