关于数据库无法存储emoji问题

100 阅读1分钟

今天客户群里发了个图片,说系统有的时候无法正常评价了,并附上了错误截图

image.png general error?啥错误啊?之前没遇到过,查了下资料说是编码错误
需要将数据库以及相关字段的编码设置为utf8mb4,因为utf8只支持存储3个字节的数据,而emoji需要占用4个字节,所以插入导致了错误
于是,我看了看服务器上数据库相应的字段

哎?这不就是utf8mb4吗?而且数据库里面有一个成功保存emoji数据的字段啊!
继续将错误原封不动在谷歌上进行搜索,找到一个stackoverflow的帖子:

image.png 一个回答如下:

image.png 需要在数据库连接的时候再设置一下编码?之前好像有设置过数据库连接相关的用户名、密码这些,保存在一个.env文件中

image.png

果然,charset还是utf8(图中是我修改之后的)

再进行测试,问题完美解决!