实习任务三-修改bug:支持非常规的中文字符
问题描述:
前端用户在插入五笔打出的非常规的中文字符的时候,该数据提交给数据库的时候,由于数据库的该字段是采用UTF-8的编码,所以不能识别该字符,所以报出了插入错误的sqlexception。
解决的办法:将数据库中该字段的编码改成utf8mb4即可。
拓展:
1.mysql的utf8并不是严格意义上的utf8,他只支持三个字节的,而utf8支持的是四个字节的。建议数据库中不要使用utf8,直接使用utf8mb4
错误提示中的字符0xF0 0x9F 0x98 0x84 ,这对应UTF-8编码格式中的4字节编码(UTF-8编码规范)。正常的汉字一般不会超过3个字节,为什么为出现4个字节呢?实际上是它对应的是智能手机输入法中的表情。那为什么会报错呢?因为mysql中的utf-8并不是 真正意义上的utf-8,它只能存储1~3个字节长度的utf-8编码,如果想存储4个字节的必须用utf8mb4类型。不而要使用utf8mb4类型,首先要保证Mysql版本要不低于 MySQL 5.5.3。
2.mysql中如何修改对应的字段的编码格式呢
选择改变表即可
3.核对中配的utf8mb4_bin是为了不区分大小写。