Edit report at http://bugs.php.net/bug.php?id=51947&edit=1

 ID:               51947
 Comment by:       arpad dot borsos at googlemail dot com
 Reported by:      ehsan dot akhgari at gmail dot com
 Summary:          json_encode fails to decode non-breaking spaces
 Status:           Open
 Type:             Bug
 Package:          JSON related
 Operating System: Windows, Linux
 PHP Version:      5.3.2

 New Comment:

I have an outdated 5.2.4 on my server which returns an empty string
instead of null in that case.



Anyway, 0xa0 (160) is not a valid utf8 character (it needs to be 0xc2
0xa0) and thus invalid json. I believe PHP is right about erroring out
in this case.



var_dump(json_encode(utf8_encode(chr(0xa0))));



and



$encutf8 = json_encode(chr(0xc2).chr(0xa0));

var_dump($encutf8);



both work fine.



Can you check the output of json_last_error() please?


Previous Comments:
------------------------------------------------------------------------
[2010-05-29 01:24:00] ehsan dot akhgari at gmail dot com

Description:
------------
I've seen that json_encode cannot encode a non-breaking space character,
and returns "null".  I've reproduced this on php5.3.2 on Windows and
Linux.

Test script:
---------------
<?php



var_dump(json_encode(chr(160)));



?>

Expected result:
----------------
string(3) "" ""

Actual result:
--------------
string(4) "null"


------------------------------------------------------------------------



-- 
Edit this bug report at http://bugs.php.net/bug.php?id=51947&edit=1

Reply via email to