Laravel 5.2 未编码或未编码的 Unicode 字符 blade

Laravel 5.2 Unicode Characters not encoded with or without blade

我的控制器方法包括如下代码

$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 的情况下打印它时,它工作正常。所以我希望数据库没有问题。

帮我解决这个问题。

尝试以下操作:

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();

在结果字符串上使用 htmlentities($string, UTF-8),然后在 laravel blade 中打印它。

您好,问题已经解决。我已经按如下方式更改了数据库配置,现在它可以正常工作了。

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