最近在日志中发现数据库报错如下信息
1366 Incorrect string value: '\xF0\x9F\x98\x83\xF0\x9F...' for column 'comment' at row 1
原因
因为该字段中使用了表情符号,比如该字段存储的是用户的微信昵称等,
解决思路
MySQL数据库默认使用 utf8_general_ci 编码方式,如果要支持存储表情符号,需要将编码方式改成 utf8mb4_general_ci。
解决方法
修改表对应字段的编码方式,语句如下:
ALTER TABLE [table_name] MODIFY [column_name] VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
因为该编码比默认的utf8编码方式更占用空间,并且线上数据库修改全局的编码方式不太现实,所以推荐使用该方法直接修改对应列的编码方式。
网友评论