On Fri, May 24, 2013 at 9:06 AM, Radek Krejča <radek.krejca@xxxxxxxxxx>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