Laravel 5.1 utf-8保存到数据库

问题描述 投票:4回答:3

我正在尝试将记录保存到数据库。从输入中获取值并将其保存到数据库时没有问题,例如:

$ request-> input('name')是一个值为'سلام'的输入

$provider->name = $request->input('name');
$provider->copyright_email = '[email protected]';
$provider->save();

但是,当我尝试从我的控制器给出值时出现问题。名字会保存'?'进入数据库:

$provider->name = 'سلام';
$provider->copyright_email = '[email protected]';
$provider->save();

我已经将此代码添加到config / database.php:

'charset' => 'utf8',
'collation' => 'utf8_persian_ci',
unicode utf-8 laravel-5.1
3个回答
7
投票
  1. 将数据库文件配置为utf8_unicode_ci

检查文件config/database.php

'charset'   => 'utf8',
'collation' => 'utf8_unicode_ci',
  1. 确保你的Mysql数据库设置为utf8,MySQL的utf8mb4更好
  2. 确保您的文件字符设置为UTF-8 without BOM

我个人认为你在IDE中有问题,尝试使用Atom。


1
投票

将数据库文件配置为utf8_unicode_ci

检查文件config/database.php

'charset'   => 'utf8',
'collation' => 'utf8_genarel_ci',

0
投票

我遇到了同样的问题,接受的答案对我没有帮助。我在这里如何以这种方式解决问题:

转到数据库中的表格,检查“排序规则”,将其更改为:

utf8mb4_unicode_ci  

将其应用于表中的每个字段。

这可能对某人有所帮助。 :)

© www.soinside.com 2019 - 2024. All rights reserved.