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

时间:2016-07-28 12:45:36

标签: database laravel orm emoji

我想在数据库中存储特殊字符,反之亦然,如情绪化,但当我尝试保存在数据库中时,我会收到问号。

请帮忙

4 个答案:

答案 0 :(得分:16)

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 :(得分:1)

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

2)确保要接收表情符号的表列的归类设置为utf8mb4_something

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

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

答案 2 :(得分:1)

除了上面的答案,请确保清除缓存并迁移刷新以更新mysql表。希望这有助于某人

答案 3 :(得分:0)

如果您使用websocket进行聊天并发送表情符号,则必须重新启动websocket。

你可以找到并杀死所有的websocket进程 sudo kill (Your PID)没有圆括号。

并为???标记,它的okey因为某些浏览器或MYSQL编辑器不支持表情符号,因此它们会向您显示问题(?)标记。

问候。