如何使用 Laravel 和 Orm 查询在数据库中存储表情符号字符串

How to store emoji string in Database using Laravel with Orm Query

我想像 emotive 一样在数据库中存储特殊字符,反之亦然,但是当我尝试在数据库中保存时,我得到了问号。

在您的 database.php 文件中,确保将 charsetcollation 设置为 utf8mb4:

'mysql' => [
            'driver'    => 'mysql',
            'host'      => env('DB_HOST', 'localhost'),
            'database'  => env('DB_DATABASE', 'forge'),
            'username'  => env('DB_USERNAME', 'forge'),
            'password'  => env('DB_PASSWORD', ''),
            'charset'   => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',

你的表情符号列应该是一个字符串:

$table->string('emoji');

1) 确保您使用的是 MYSQL 5.5.3 或更高版本,然后您可以将排序规则更改为 utf8mb4_something、

2) 确保将接收表情符号的 table 列的排序规则设置为 utf8mb4_something

如果您仍然有问题,请编辑您的 database.php 配置文件并更新以下内容,

    'charset' = 'utf8mb4';
'collation' = 'utf8mb4_unicode_ci'

除了上述答案之外,请确保清除缓存并迁移刷新以更新 MySQL 表。

如果您正在使用websocket聊天和发送表情包,那么您需要重启websocket。

您可以找到并杀死所有 websocket 进程,例如 sudo kill (Your PID) 没有圆括号。

而对于 ?马克,没关系,因为有些浏览器,或者MySQL编辑器不支持表情符号,所以他们给你看问题(?)马克。