jsonデータをphpで保存する際のエンコード
あまり日本語を扱いたくはない。
しかもjsonデータだからなるべくコード値のみ持ちたいが、オーダーとして文字列も持って欲しいと言う要望が来ている。
$json = array( "condition" => array([ "condition_1" => "ほげふが", "condition_2" => "もふべろ" ]) );
ざっくりとこのようなデータを保存したい。
この場合配列をjsonと宣言するので
$json = json_encode($json, true);
と無意識にやってしまう。ただ、この場合日本語文字列がunicodeの16進に変換される。
それも面倒臭いのは\マークが抜ける。1文字なら全てに "\\" を付け加えれば良いが文字列で持っているのでそうもいかず。
$json = json_encode($json, JSON_UNESCAPED_UNICODE);
と言う事でエスケープせず持て。
とすれば、いちいちエンコーディングを気にせず日本語文字列でDBに保持出来るので復元が簡単。
セキュリティ性は薄い。