Re: json_decode mistery

From: Date: Sat, 25 May 2013 12:42:00 +0000
Subject: Re: json_decode mistery
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-321209@lists.php.net to get a copy of this message
On Fri, May 24, 2013 at 9:06 AM, Radek Krejča <radek.krejca@starnet.cz>wrote: > Hello, I am usin json regulary, but in one script I have mistery: > > echo($decrypted_data)."\n\n"; > var_dump(json_decode($decrypted_data, true)); > echo "\n"; > > var_dump(json_decode('{"result_ok":true,"result_message":null,"client_name":"Radek > Krej\u010da"}', true)); > > I got: > > {"result_ok":true,"result_message":null,"client_name":"Radek > Krej\u010da"} > > NULL > > array(3) { > ["result_ok"]=> > bool(true) > ["result_message"]=> > NULL > ["client_name"]=> a" > } string(13) "Radek KrejÄ > > > You can see, that in $decrypted_data, is stored valid (by my opinion) json > data. If I use this variable in json_decode, I got "null". And if I manualy > use data displayed on screen, I got valid array. > > Where I do mistake? If I remove client_name (so no utf8 is in json data), > situation is the same. > > Radek > Hi, It could be there are NUL-bytes or other unprintable ASCII characters in the original $decrypted_data. Try this: var_dump(json_encode($decrypted_data)); Yes, json_encode, as it will show \u0000 or any other low unicode value. - Matijn

« previous php.general (#321209) next »