我正在尝试将记录保存到数据库。 从输入中获取值并将其保存到数据库时没有问题,例如:
$ request-> input('name')是一个值为'سلام'的输入
$provider->name = $request->input('name');
$provider->copyright_email = 'test@yahoo.com';
$provider->save();
但是当我尝试从我的控制器中给出值时出现问题。 名字会保存'?'进入数据库:
$provider->name = 'سلام';
$provider->copyright_email = 'test@yahoo.com';
$provider->save();
我已经将此代码添加到config / database.php:
'charset' => 'utf8',
'collation' => 'utf8_persian_ci',
答案 0 :(得分:7)
utf8_unicode_ci
检查文件config/database.php
:
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
确保您的Mysql数据库设置为utf8
且MySQL的utf8mb4
更好
确保您的文件字符设置为UTF-8 without BOM
我个人认为您在IDE中遇到问题,请尝试使用Atom。
答案 1 :(得分:2)
将数据库文件配置为utf8_unicode_ci
检查文件config/database.php
:
'charset' => 'utf8',
'collation' => 'utf8_genarel_ci',
答案 2 :(得分:0)
我遇到了同样的问题,接受的答案对我没有帮助。 在这里我是如何以这种方式解决问题的:
转到数据库中的表格,检查“整理”,将其更改为:
utf8mb4_unicode_ci
将其应用于表格中的每个字段。
这可能对某人有所帮助。 :)
答案 3 :(得分:0)
您还可以使用以下代码设置utf8 ->字符集('utf8')
答案 4 :(得分:0)
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
不起作用
但可用于迁移
$table->charset = 'utf8';
$table->collation = 'utf8_persian_ci';