ID: 43941 Updated by: [EMAIL PROTECTED] Reported By: stas at zend dot com -Status: Open +Status: Closed Bug Type: JSON related Operating System: * PHP Version: 5.3CVS-2008-01-25 (CVS) New Comment:
This bug has been fixed in CVS. Snapshots of the sources are packaged every three hours; this change will be in the next snapshot. You can grab the snapshot at http://snaps.php.net/. Thank you for the report, and for helping us make PHP better. Previous Comments: ------------------------------------------------------------------------ [2008-01-25 22:19:43] stas at zend dot com Description: ------------ Right now, if json_encode sees wrong UTF-8 data, it just cuts the string in the middle, no error returned, no message produced. I think it's not a good idea to just silently cut the data. In fact, I think it is a bug caused by this code in ext/json/utf8_to_utf16.c: if (c < 0) { return UTF8_END ? the_index : UTF8_ERROR; } which inherited this bug from code published on json.org. It should be: if (c < 0) { return (c == UTF8_END) ? the_index : UTF8_ERROR; } Reproduce code: --------------- var_dump(json_encode("ab\xE0")); var_dump(json_encode("ab\xE0\"")); Expected result: ---------------- Some error message Actual result: -------------- Just: ""ab"" ""ab"" ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=43941&edit=1