PHPのjson_encode()
関数はデフォルトでマルチバイトUnicode文字を\uXXXX
にエンコードします。
PHP: json_encode - Manual
$values = [
'message' => 'わけがわからないよ',
];
echo json_encode($values); // {"message":"\u308f\u3051\u304c\u308f\u304b\u3089\u306a\u3044\u3088"}
これによって読みづらくなる上に、データ量が増加してしまうばかりでメリットは薄いです。
CakePHPでJsonView
を使う場合にどうやって設定するかのメモ。
CakePHP3.5で確認。
標準関数のjson_encode()
は第二引数にJSON_UNESCAPED_UNICODE
定数をセットするだけです。
$json = json_encode($values, JSON_UNESCAPED_UNICODE);
CakePHPでは直接指定できないので、代わりにController::viewVers['_jsonOptions']
にセットしてやればおk
class AppController extends Controller
{
public $viewVars = [
'_jsonOptions' => JSON_UNESCAPED_UNICODE,
];
}
コメント