最近写接口时,有个新增文章的接口报错了,报错的信息为:
代码语言:php复制...
SQLSTATE[HY000]: General error: 1366 Incorrect string value: 'xF0x9Fx98x8BxF0x9F...' for column 'content' at row
...
因为那个页面有富文本编辑器,所以很快的推断出了这是因为数据里有 emoji 表情导致的报错
解决办法如下:
1.设置该字段的字符编码
代码语言:php复制ALTER TABLE 表名 CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
2.修改 Laravel 配置
config/database.php
代码语言:php复制'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', '3306'),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'strict' => true,
'engine' => null,
]
首发自:Laravel 保存 emoji 表情 - 小鑫の随笔