我想在数据库中存储特殊字符,反之亦然,如情绪化,但当我尝试保存在数据库中时,我会收到问号。
请帮忙
答案 0 :(得分:16)
在database.php
文件中,请务必将charset
和collation
设置为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编辑器不支持表情符号,因此它们会向您显示问题(?)标记。
问候。