Laravel项目中使用mysql存储emoji表情乱码的问题
在mysql中存储中文时通常用UTF8的编码方式,而用此编码方式存储emoji表情时,会出现乱码或插入失败,原因是utf8编码部支持emoji表情,至于为什么不支持,可参考这篇文章:mysql utf8mb4与emoji表情,因此需要将utf8编码换成utf8mb4,步骤如下:
1. 在mysql中,将需要存储emoji表情的字段的编码换成utf8mb4
ALTER TABLE `TABLE_NAME` MODIFY `COLUMN_NAME` TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
2. 在laravel的数据库配置文件``config/databases.php``中设置mysql连接的编码
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => 'FN_',
'strict' => false,
'engine' => null,
],
ok,现在就能在mysql中存储emoji表情了
原文地址:Laravel项目中使用mysql存储emoji表情乱码的问题
欢迎关注我的公众号:
![](https:https://img.haomeiwen.com/i2650331/0a591295c0869965.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)