だ。ログ。

開発とかスノボとかやきうとか。

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に保持出来るので復元が簡単。
セキュリティ性は薄い。