Laravel 5.1 utf-8 saving to database

2020-02-10 08:08发布

问题:

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',

回答1:

  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.



回答2:

config your database file to utf8mb4_unicode_ci

Check the file config/database.php :

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



回答3:

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. :)



回答4:

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