php
1$value = json_encode($value, JSON_UNESCAPED_UNICODE); 2$value = strstr($value,'id\":\"1\"'); 3$value = strstr($value,'},{\"id\":\"6\"',true); 4$value = strstr($value,'value\":'); 5$value = substr($value,strcspn($value,'"')+4); 6$value = strstr($value,'\"',true); 7var_dump($value);
とした際に
string(7) "\u3042"
と結果が出てきます。これについて
あ
と表示させたいのですが、それにあたる方法が見受けられません。。。
なぜ、エンコードしたのに"あ"とならないのでしょうか?
json_encodeをした直前の$value内をvar_export()した結果については
php
1stdClass::__set_state(array( 'form' => '[{"id":"13","is_email":"false","add_to_day_hour_info":"false","add_to_day_hour_body":"false","translation":"\u4e88\u7d04\u60c5\u5831","value":"\u00a0\u30bb\u30df\u30ca\u30fc\u30a4\u30d9\u30f3\u30c8\u300016:30-17:00\u3000A\u4f1a\u5834\u00a0"},{"id":"1","is_email":"false","add_to_day_hour_info":"false","add_to_day_hour_body":"false","translation":"\u304a\u540d\u524d","value":"\u3042"},{"id":"6","is_email":"false","add_to_day_hour_info":"false","add_to_day_hour_body":"false","translation":"\u3075\u308a\u304c\u306a","value":"\u3042\u3042"},{"id":"14","is_email":"false","add_to_day_hour_info":"false","add_to_day_hour_body":"false","translation":"\u5b66\u6821\u540d","value":"\u3042\u3042"},{"id":"15","is_email":"false","add_to_day_hour_info":"false","add_to_day_hour_body":"false","translation":"\u5352\u696d\u5e74\u5ea6","value":"\u3042"},{"id":"3","is_email":"true","add_to_day_hour_info":"false","add_to_day_hour_body":"false","translation":"\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9","value":"exam@mail.com"},{"id":"12","is_email":"false","add_to_day_hour_info":"false","add_to_day_hour_body":"false","translation":"\u96fb\u8a71\u756a\u53f7","value":"\u3042"}]', ))
json_encodeをした直後の$value内をvar_export()した結果については
php
1'{"form":"[{\"id\":\"13\",\"is_email\":\"false\",\"add_to_day_hour_info\":\"false\",\"add_to_day_hour_body\":\"false\",\"translation\":\"\\u4e88\\u7d04\\u60c5\\u5831\",\"value\":\"\\u00a0\\u30bb\\u30df\\u30ca\\u30fc\\u30a4\\u30d9\\u30f3\\u30c8\\u300016:30-17:00\\u3000A\\u4f1a\\u5834\\u00a0\"},{\"id\":\"1\",\"is_email\":\"false\",\"add_to_day_hour_info\":\"false\",\"add_to_day_hour_body\":\"false\",\"translation\":\"\\u304a\\u540d\\u524d\",\"value\":\"\\u3042\"},{\"id\":\"6\",\"is_email\":\"false\",\"add_to_day_hour_info\":\"false\",\"add_to_day_hour_body\":\"false\",\"translation\":\"\\u3075\\u308a\\u304c\\u306a\",\"value\":\"\\u3042\\u3042\"},{\"id\":\"14\",\"is_email\":\"false\",\"add_to_day_hour_info\":\"false\",\"add_to_day_hour_body\":\"false\",\"translation\":\"\\u5b66\\u6821\\u540d\",\"value\":\"\\u3042\\u3042\"},{\"id\":\"15\",\"is_email\":\"false\",\"add_to_day_hour_info\":\"false\",\"add_to_day_hour_body\":\"false\",\"translation\":\"\\u5352\\u696d\\u5e74\\u5ea6\",\"value\":\"\\u3042\"},{\"id\":\"3\",\"is_email\":\"true\",\"add_to_day_hour_info\":\"false\",\"add_to_day_hour_body\":\"false\",\"translation\":\"\\u30e1\\u30fc\\u30eb\\u30a2\\u30c9\\u30ec\\u30b9\",\"value\":\"exam@mail.com\"},{\"id\":\"12\",\"is_email\":\"false\",\"add_to_day_hour_info\":\"false\",\"add_to_day_hour_body\":\"false\",\"translation\":\"\\u96fb\\u8a71\\u756a\\u53f7\",\"value\":\"\\u3042\"}]"}'
となっております。
さすがにメールアドレス部分はマスク掛けられた方が良いような。
抜けていました、、、ありがとうございます!
json_encode($value, JSON_UNESCAPED_UNICODE); 直後の$valueをvar_dump()した場合はどうなりますか?また配列情報を提示されるのであればvar_dumpよりもvar_exportの方が、回答者が再現確認しやすい形式となります。
出力結果も「コード」なので同じようにコードブロックで囲っていただけると、更に助かります。
追記させていただきました、よろしくお願いします。。。
json_encode()掛ける前の時点で\u3042になっているように思いますが・・。json_encode掛ける前の情報をvar_export()していただいて良いですか?
追記させていただきました、よろしくお願いします。。。
これを回答にすべきか迷うのでこちらに書きますが、ユニコードエンコードされた後の文字列をどうにかするのではなく、ユニコードエンコードされないように工夫された状態のデータを作るほうが何倍も楽と思います。
なるほど。。。ありがとうございます。。。一度デコードされている箇所について調べてみます
あとはこのデータがどのように渡されて、どのように使いたいのかといった仕様面というか大目的部分というか、その辺りを明示されたほうが解決に向かうのではないかと思います。ポイントはあくまで枝葉部分なので、そこだけでは目標に進まない可能性もあります。
回答2件
あなたの回答
tips
プレビュー