Laravel 5.1 utf-8 saving to database

2020-02-10 07:47发布

I'm trying to save a record to database. When get value from input and save it to database there is no problem, like :

$request->input('name') is an input with value of 'سلام'

$provider->name = $request->input('name');
$provider->copyright_email = 'test@yahoo.com';
$provider->save();

But when i try give value from my controller problem appears. Name will save '?' into database :

$provider->name = 'سلام';
$provider->copyright_email = 'test@yahoo.com';
$provider->save();

I've already added this code to config/database.php :

'charset' => 'utf8',
'collation' => 'utf8_persian_ci',

4条回答
爷、活的狠高调
2楼-- · 2020-02-10 07:55

also you can use below code for setting utf8 ->charset('utf8')

查看更多
时光不老,我们不散
3楼-- · 2020-02-10 08:09
  1. config you database file to utf8_unicode_ci

Check the file config/database.php :

'charset'   => 'utf8',
'collation' => 'utf8_unicode_ci',
  1. Make sure your Mysql databases is set to utf8 and MySQL’s utf8mb4 is better

  2. Make sure your file character set to UTF-8 without BOM

I personally think you problem in you IDE, try to use Atom.

查看更多
我只想做你的唯一
4楼-- · 2020-02-10 08:10

I faced the same issue, the accepted answer dose not help me. Here how i solved the issue in this way:

Go to your table in your DB, check the 'Collation', change it to :

utf8mb4_unicode_ci  

Apply this to each field in the table.

This may help somebody. :)

查看更多
家丑人穷心不美
5楼-- · 2020-02-10 08:18

config your database file to utf8mb4_unicode_ci

Check the file config/database.php :

'charset' => 'utf8', 'collation' => 'utf8mb4_unicode_ci',

查看更多
登录 后发表回答