Laravel:无法设置 JSON utf-8 字符集

use*_*934 4 php json laravel-4

我在 Laravel 中有一个特定的问题。

当我使用echoorprint_rvar_dump我的数据(从 eloquent 检索)以正确的格式(UTF-8,希腊语)打印时。但是当我使用

return Response::json($data)
Run Code Online (Sandbox Code Playgroud)

返回类似的东西

"\u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03bf\u03af \u03c7\u03b1\u03c1\u03b1\u03ba\u03c4\u03ae\u03c1\u03b5\u03c2"
Run Code Online (Sandbox Code Playgroud)

我已经在我的php.ini,中将 UTF-8 设置为默认字符集mysql.conf(但这不是问题)。

我尝试了几种方法来设置字符集,例如:

Response::json($data,200,$headers)
Run Code Online (Sandbox Code Playgroud)

其中 $headers 是一个数组:

'Content-type'=> 'application/json; charset=utf-8'
Run Code Online (Sandbox Code Playgroud)

但什么都没有改变。

我的操作系统是 Debian 7 wheezy 64 位,PHP 版本 5.5.13,MySQL 5.6.19 和 apache2 服务器。

Dom*_*rer 5

JSON_UNESCAPED_UNICODE 如果没有像这样为我设置正确的标头,则无法正常工作:

return Response::json($data, 200, array('Content-Type' => 'application/json;charset=utf8'), JSON_UNESCAPED_UNICODE);
Run Code Online (Sandbox Code Playgroud)

在标题Content-Type设置为application/json;charset=utf8它后,它确实对我有用。

适用于当前的 Laravel 版本。(5.4)