2015-07-12 63 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}}