読者です 読者をやめる 読者になる 読者になる

りぺんぎんの書きなぐり技術書

基本、ITの技術について書きます

Laravel 5.3 の JSON response において 日本語 が文字化けする問題の解決法

現状

Laravel 5.3で日本語を含むデータを "return response()->json();" すると このようになる。

f:id:repenguin:20161129210426p:plain

日本語がおかしくなる。(※別にJSONの本来仕様上間違っているわけではないらしい)

json_decode,json_encode をいじればいいんだが、どうせならLaravelの書き方でやりたい。

解決策

これは unicode で日本語がエスケープされているので起こる問題らしい。 だからこれを

$collection = DB::select('select * from user;');
return response()->json( [
                'data' => $collections
]);

$collection = DB::select('select * from user;');
return response()->json(
            [
                'data' => $collections
            ],
            200,[],
            JSON_UNESCAPED_UNICODE
        );

と書いてやると日本語のまま表示される。