我在 Laravel 中有一个特定的问题。
当我使用 echo
或 print_r
或 var_dump
我的数据(从 eloquent 中检索)以正确的格式(UTF-8,希腊语)打印。但是当我使用
return Response::json($data)
返回类似的东西
"\u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03bf\u03af \u03c7\u03b1\u03c1\u03b1\u03ba\u03c4\u03ae\u03c1\u03b5\u03c2"
我已经在
php.ini
中将 UTF-8 设置为默认字符集, mysql.conf
(但这不是问题)。我尝试了几种方法来设置字符集,例如:
Response::json($data,200,$headers)
其中 $headers 是一个数组:
'Content-type'=> 'application/json; charset=utf-8'
但什么都没有改变。
我的操作系统是 Debian 7 wheezy 64 位,PHP 版本 5.5.13,MySQL 5.6.19 和 apache2 服务器。
最佳答案
JSON_UNESCAPED_UNICODE
如果没有像这样为我设置正确的 header ,则无法正常工作:
return Response::json($data, 200, array('Content-Type' => 'application/json;charset=utf8'), JSON_UNESCAPED_UNICODE);
标题后
Content-Type
被设置为 application/json;charset=utf8
它确实对我有用。适用于当前的 Laravel 版本。 (5.4)
关于php - Laravel : Cant set JSON utf-8 charset,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24415284/