一般情况下,mysql在创建表单的时候会默认将字符串类型的字段字符集设置成utf8
对于绝大多数的场景下,这样的设置并无问题。但是当用户提交的信息中包含了诸如emoji表情在内的超出3字节utf8编码的字符时,插入修改都会出现问题:
这时就需要将默认的utf8
改成utf8mb4
:
utf8mb4与utf8不同,他的全称是(utf8 most byte4)。专门用来兼容四字节的unicode。
由于utf8mb4是utf8的超集,所以直接将编码改为utf8mb4之后不需要做其他转换。
然而,手动一个一个修改实在是太麻烦了,我们可以封装一个存储过程:
CREATE DEFINER=`admin`@`%` PROCEDURE `convert_charset`(IN