2015-07-12 62 views
3

我是laravel框架的新手。我使用Homestead作爲我的開發環境,一切正常。問題是我將波斯語言記錄插入到mysql數據庫中,當我在某些視圖中返回它們時,波斯語字符會變得亂碼(例如「آذرشهر」返回爲「\ u0622 \ u0630 \ u0631 \ u0634 \ u0647 \ u0631」)。 在使用laravel之前,我有一個使用mysqli_set_charset解決的simillar問題。我以前的代碼是這樣的:laravel 5.1從mysql中刪除亂碼charachers

class MySQLDatabase { 
     private $connection; 
     public function __construct(){ 
      $this->openConnection(); 
      mysqli_set_charset($this->connection, 'utf8'); 
     } 
     public function openConnection(){ 
      $this->connection=mysqli_connect(DB_SERVER, DB_USER, DB_PASS, DB_NAME); 

      if(mysqli_connect_errno()){ 
        die("Database connection failed:" . 
         mysqli_connect_error(). 
         "(". mysqli_connect_errno().")" 
       ); 
      } 
     } 

我laravel數據庫配置文件是這樣的:

'default' => env('DB_CONNECTION', 'mysql'), 
'mysql' => [ 
      'driver' => 'mysql', 
      'host'  => env('DB_HOST', 'localhost'), 
      'database' => env('DB_DATABASE', 'forge'), 
      'username' => env('DB_USERNAME', 'forge'), 
      'password' => env('DB_PASSWORD', ''), 
      'charset' => 'utf8', 
      'collation' => 'utf8_unicode_ci', 
      'prefix' => '', 
      'strict' => false, 
     ], 

和.ENV文件是這樣的:

APP_ENV=local 
APP_DEBUG=true 
APP_KEY=XXXXXXXX 

DB_HOST=localhost 
DB_DATABASE=homestead 
DB_USERNAME=homestead 
DB_PASSWORD=secret 

CACHE_DRIVER=file 
SESSION_DRIVER=file 
QUEUE_DRIVER=sync 

MAIL_DRIVER=smtp 
MAIL_HOST=mailtrap.io 
MAIL_PORT=2525 
MAIL_USERNAME=null 
MAIL_PASSWORD=null 
MAIL_ENCRYPTION=null 

我怎樣才能解決這個問題問題?

這是一個視圖:

@extends('app') 

    @section('content') 
      <h1>شهر</h1> 
      @foreach($cities as $city) 
      {{ $city }} 
      @endforeach 
    @stop 

,將所得物體是這樣的:

{ 「ID」:402, 「城市」:「\ u0622 \ u0630 \ u0631 \ u0634 \ u0647 \ u0631「,」province_id「:1,」created_at「:」 - 0001-11-30 00:00:00「,」updated_at「:」 - 0001-11-30 00:00:00「}

+1

將字符集設置爲utf8是在PDO中您的laravel配置文件如上所示,這就是'mysqli_set_charset'的等價物。你工作的舊字符集是utf8嗎? – prograhammer

+0

是的。在我的舊代碼中,我使用'mysqli_set_charset'將字符集設置爲utf8 –

+0

這就像我添加到問題 –

回答

0

其實這與Laravel沒有任何關係。問題是,我試圖返回一個完整的對象(即{{$city}})到我的觀點,而我應該返回這樣的城市名稱:{{$city->city}}