新建一个MySQL数据库时,要设置字符集,一般来说都是选择 utf8 -- UTF-8 Unicode,
这种字符集只要不存储 emoji表情 就没有问题,但是一旦用户的呢称含有 emoji表情,就会出现错误。
这时候应该采用 utf8mb4 -- UTF-8 Unicode 这种字符集来存储。
因为 MySQL的“utf8”实际上不是真正的UTF-8。
“utf8”只支持每个字符最多三个字节,而真正的UTF-8是每个字符最多四个字节。
MySQL一直没有修复这个bug,他们在2010年发布了一个叫作“utf8mb4”的字符集,绕过了这个问题。
这里提供了一个指南用于将现有数据库的字符编码从“utf8”转成“utf8mb4”。
https://mathiasbynens.be/notes/mysql-utf8mb4#utf8-to-utf8mb4