From:
Operating system: Windows
PHP version: 5.3.13
Package: JSON related
Bug Type: Bug
Bug description:json_decode produces invalid byte-sequences
Description:
------------
It's a typical case the JSON *and* UTF-16 specifications warn about:
decoding of
non-existing UTF-16 code-points:
json_decode('"\ud834"')
shoud give NULL because \ud834 is *invalid*. But instead it starts some
party,
get's boozed and offers this as UTF-8 byte-sequence:
1110 1101 1010 0000 1011 0100
1110 xxxx 10xx xxxx 10xx xxxx
1101 1000 0011 0100
D8 34
U+D834 is not a valid unicode character.
Test script:
---------------
if (NULL !== json_decode('"\ud834"')) {
echo "json_decode is still broken.";
}
Expected result:
----------------
NULL because the json is invalid.
Actual result:
--------------
PHP tries to create UTF-8 out of it and fails by creating invalid UTF-8
unicode
byte-sequences.
--
Edit bug report at https://bugs.php.net/bug.php?id=62010&edit=1
--
Try a snapshot (PHP 5.4):
https://bugs.php.net/fix.php?id=62010&r=trysnapshot54
Try a snapshot (PHP 5.3):
https://bugs.php.net/fix.php?id=62010&r=trysnapshot53
Try a snapshot (trunk):
https://bugs.php.net/fix.php?id=62010&r=trysnapshottrunk
Fixed in SVN:
https://bugs.php.net/fix.php?id=62010&r=fixed
Fixed in SVN and need be documented:
https://bugs.php.net/fix.php?id=62010&r=needdocs
Fixed in release:
https://bugs.php.net/fix.php?id=62010&r=alreadyfixed
Need backtrace:
https://bugs.php.net/fix.php?id=62010&r=needtrace
Need Reproduce Script:
https://bugs.php.net/fix.php?id=62010&r=needscript
Try newer version:
https://bugs.php.net/fix.php?id=62010&r=oldversion
Not developer issue:
https://bugs.php.net/fix.php?id=62010&r=support
Expected behavior:
https://bugs.php.net/fix.php?id=62010&r=notwrong
Not enough info:
https://bugs.php.net/fix.php?id=62010&r=notenoughinfo
Submitted twice:
https://bugs.php.net/fix.php?id=62010&r=submittedtwice
register_globals:
https://bugs.php.net/fix.php?id=62010&r=globals
PHP 4 support discontinued:
https://bugs.php.net/fix.php?id=62010&r=php4
Daylight Savings: https://bugs.php.net/fix.php?id=62010&r=dst
IIS Stability:
https://bugs.php.net/fix.php?id=62010&r=isapi
Install GNU Sed:
https://bugs.php.net/fix.php?id=62010&r=gnused
Floating point limitations:
https://bugs.php.net/fix.php?id=62010&r=float
No Zend Extensions:
https://bugs.php.net/fix.php?id=62010&r=nozend
MySQL Configuration Error:
https://bugs.php.net/fix.php?id=62010&r=mysqlcfg