PHP 小白学编程PHP经验分享

Laravel项目中使用mysql存储emoji表情乱码的问题

2016-08-04  本文已影响801人  正义的程序员
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)

上一篇 下一篇

猜你喜欢

热点阅读