php - Laravel : Cant set JSON utf-8 charset

标签 php json laravel-4

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

当我使用 echoprint_rvar_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/

相关文章:

javascript - 无法从 JSON 请求中获取数据,尽管我知道它已返回

javascript - 基于文本 jquery php 更改按钮

具有十进制格式的 PHP Mysql SUM

php - 是否有任何用 PHP 或 Go 编写的 SMTP 服务器?

PHP MySQL - SELECT SUM 返回问题

python - 解析一行中的多个json对象

json - 如何使用 jq 将数字转换为字符串?

orm - 使用 laravel eloquent 从两个连接表中获取数据

orm - Laravel中的多对多关系:belongsToMany()与hasManyThrough()

php - 如何将 Laravel SQl 查询时间保持在 5 秒以下