起因
上周,我的 Manico
网站后台收到了一个网站崩溃的报告,这个崩溃是名叫「
Yale
」的用户通过「联系我」这个表单给我反馈
Manico
的问题,他在反馈中打了三个
emoji
,然后点击了「发送」按钮
…
然后,我的网站就
500
了。
这是因为 MySQL
默认的
utf8
字符集并不支持存储
emoji
这样四个字节的字符,于是就会在数据保存的时候引发「
Incorrect string value
」的错误,进而导致网站
500
。
解决办法也很简单,把 MySQL
的字符集配置成
utf8mb4
就可以了,但是要去改旧数据库的表格、可能需要迁移旧数据
…
不太喜欢这种方式。
另外,不仅仅是 Manico
的网站用的是
Django + MySQL
的组合,本站
IMTX
也是,所以我在文章中从来就不能用
emoji
(当然现在可以了
:sweat_smile:
)。所以我真的忍不了了,