参阅(推荐翻墙打开,国内译文在此 http://ju.outofmemory.cn/entry/359647) https://medium.com/@adamhooper/in-mysql-never-use-utf8-use-utf8mb4-11761243e434
参阅 https://bbs.csdn.net/topics/320152831 3楼回复
mysql中 utf8 编码最大支持3字节,并不是真正的utf-8编码。
而 utf8mb4 最大支持4字节,属于真正范畴内的utf-8编码。
utf8mb4编码可额外支持部分少见汉字及emoji表情,譬如
?
推荐mysql使用utf8mb4编码替代utf8编码,但对实际数据库查询插入及占用空间的影响并未测试。
还需注意一点,需以utf8mb4处理数据是,脚本程序的连接时使用编码都要改为utf8mb4。
在使用时还发现一点:
在windows上使用python mysqldb 连接指定utf8mb4编码时会报错
2019, "Can't initialize character set utf8mb4 (path: C:\\mysql\\\\share\\charsets\\)"
猜测可能与windows上mysql版本或是使用的wheel有关,但并未实际证实。
在linux上运行同样的指定utf8mb4编码脚本则没有任何问题。