質問: strstr($value,'\"',true); var_dump($value); ``` とした際に string(7) "\\u3042" と結果が出てきます。これについて あ と表示させたいのですが、それにあたる方法が見受けられません。。。 なぜ、エンコードしたのに"あ"とならないのでしょうか? json_encodeをした直前の$value内をvar_export()した結果については ``` stdClass::__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()した結果については ``` '{"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\\"}]"}' ``` となっております。
回答: 一度UTF-16をUTF-8に直して、preg_replace_callbackを用いて文字に起こさせる。 そのあと、 $sample = str_replace('\\','', $sample); を行うことで¥を削除することが可能