json如何在laravel 5.2 json响应中编码阿拉伯语?

时间:2016-03-15 15:43:46

标签: php json laravel character-encoding laravel-5.2

我的应用程序支持多种语言。

我的控制器,

 public function index(Request $request) {
    return DB::table('offer_types')
                    ->join('offer_type_details', 'offer_type_details.offer_types_id', '=', 'offer_types.id')
                    ->where('offer_type_details.languages_id', $request->language_id ? $request->language_id : 1)
                    ->get();
}

如果是阿拉伯语,则返回json

    [{
    "id": 1,
    "description": "desc",
    "offer_types_id": 1,
    "languages_id": 2,
    "title": "\u062d\u0632\u0645"
}, {
    "id": 2,
    "description": "desc",
    "offer_types_id": 2,
    "languages_id": 2,
    "title": "\u0641\u0646\u0627\u062f\u0642"
}]

如何在Laravel 5.2中对此arabic值进行编码?

2 个答案:

答案 0 :(得分:1)

使用JSON_UNESCAPED_UNICODE标志进行JSON编码。

json_encode($multibyte_string, JSON_UNESCAPED_UNICODE);

它从字面上对多字节Unicode字符进行编码。因此,Unicode字符不会像\uXXXX那样进行转义。

答案 1 :(得分:1)

尝试这样做:

node app.js

或者

$data = DB::table('offer_types')
                    ->join('offer_type_details', 'offer_type_details.offer_types_id', '=', 'offer_types.id')
                    ->where('offer_type_details.languages_id', $request->language_id ? $request->language_id : 1)
                    ->get();

return Response::json($data, 200, [], JSON_UNESCAPED_UNICODE);