Have you solved it ?
As Erel pointed you, I solved my encoding characters for Portuguese by adding a single line in the php.
I just tested with spanish chars and it also worked OK.
What do you have on the server side ?
Make sure all your tables and field data are in UTF_general_ci collation.
It seems to works here.
Make sure your problem with the nulls also appears on the browser, otherwise it can be something with Json encoding.