2016-06-21 51 views
0

我控制器的方法包括如下代碼不帶或不帶刀片編碼Laravel 5.2 Unicode字符

$News = DB::table('news')->skip(0)->take(1)->get(); 
return $News[0]->news_title; 

和我的數據庫配置文件作爲

'mysql' => [ 
     'driver' => 'mysql', 
     'host' => env('DB_HOST', 'localhost'), 
     'port' => env('DB_PORT', '3306'), 
     'username' => env('DB_USERNAME', ''), 
     'password' => env('DB_PASSWORD', ''), 
     'database' => env('DB_DATABASE', ''), 
     'charset' => 'utf8', 
     'collation' => 'utf8_unicode_ci', 
     'prefix' => '', 
     'strict' => false, 
     'engine' => null, 
], 

和輸出看起來

தொழிலறà¯à®±à®¿à®°à¯à®•à¯à®•à¯à®®à¯ விடà¯à®¤à®²à¯ˆà®ªà¯ பà¯à®²à®¿ à®®à¯à®©à¯à®©à®¾à®³à¯ போராளிகள௠

但是,當我試圖打印這沒有Laravel它的工作正常。所以我希望數據庫沒有問題。

幫我整理一下。

+0

沒有Laravel是什麼意思? –

+0

以及你在哪裏得到這個輸出?在你的HTML? –

+0

使用核心PHP其工作正常。我的意思是沒有框架,我只是測試查詢 – Vigikaran

回答

1

嗨問題已解決。我已經改變了數據庫配置如下,現在它的工作完美。

'charset' => 'latin1', 
'collation' => 'latin1_swedish_ci', 
0

嘗試以下操作:

public function convertUtf8($value) { 
    return mb_detect_encoding($value, mb_detect_order(), true) === 'UTF-8' ? $value : mb_convert_encoding($value, 'UTF-8'); 
} 

$News = DB::table('news')->skip(0)->take(1)->get(); 
return convertUtf8($News[0]->news_title); 

讓我知道是否奏效!

順便說一句,你想獲得第一個項目?你可以做到這一點更容易。只需製作一個News型號並執行以下操作:News::first();

+0

嗨,我試過這種方式,仍然是字符串完全解碼。我仍然收到字符,如 ? – Vigikaran

+0

@ Vikikaran我做了更新,請嘗試請 – Markinson

+0

不,這是不作任何改變,輸出爲以前 – Vigikaran

0

在結果字符串上使用htmlentities($ string,UTF-8),然後將其打印在laravel blade中。

+0

獲取此錯誤htmlentities()期望參數2很長,給出的字符串 – Vigikaran

+0

使用htmlentities($ string,UTF-8) –

+0

嗨,問題已修復。張貼我的解決方案感謝您的時間 – Vigikaran