3月27日工作内容

First Post:

Last Update:

3月27日工作内容

解决数据库插入表情包问题

报错:1366-Incorrectstringvalue:”\xF0\x9F\x92\xA5\xF0(x9F.for column’product text’ at row 1

我负责的一个多商户电商系统台湾平台商家客户反馈在上架的时候出现了一个问题:

image-20240327133617327

一般来说这时候看日志会更容易找到问题,但是这次因为时间有点久,去查日志因为时间隔的时间有点久会有些麻烦,所以我选择让客户截一下每一步骤的图:

image-20240327134237435

不过这时候客户又触发了一次,然后很快我就在日志上定位到了问题:

1366-Incorrectstringvalue:”\xF0\x9F\x92\xA5\xF0(x9F.for column’product text’ at row 1

结合图中他编辑插入的文本,应该是emoji表情符号的问题。

MySQL中的uftmb4格式是可以存表情符号的,但是只是在建库、建表的时候选择这个编码其实并没有用,Navicat在添加字段的时候会默认选择utf8编码(我用的版本是这样的)

utf8默认每个字符最大长度是3,utfmb4默认每个字符最大长度是4

image-20240327142458995

解决方式其实就比较简单:

image-20240327141754766

对列的字符集进行修改,改成utf8mb4就可以了

解决字段长度过长的问题

image-20240327142856110

解决完上面那个问题之后还是有问题,日志上显示的是长度过长,那么看语句上的表,然后扩充相应字段的长度限制就好了