summaryrefslogtreecommitdiff
path: root/ext/json/tests
diff options
context:
space:
mode:
authorScott MacVicar <scottmac@php.net>2009-01-02 03:02:22 +0000
committerScott MacVicar <scottmac@php.net>2009-01-02 03:02:22 +0000
commit0bdbc4e356d81fd2fd7e1f2391e24e76c2f3b8f6 (patch)
treeb62b4615b40808b430f3b0c8f69fbe5aa416c3b3 /ext/json/tests
parent8d62f3dd0201094f589fa8c64ab337e5edcf43e6 (diff)
downloadphp-git-0bdbc4e356d81fd2fd7e1f2391e24e76c2f3b8f6.tar.gz
MFH Fix bug #46944 - UTF-8 characters outside the BMP aren't encoded correctly.
Diffstat (limited to 'ext/json/tests')
-rw-r--r--ext/json/tests/bug46944.phpt32
1 files changed, 32 insertions, 0 deletions
diff --git a/ext/json/tests/bug46944.phpt b/ext/json/tests/bug46944.phpt
new file mode 100644
index 0000000000..735de04435
--- /dev/null
+++ b/ext/json/tests/bug46944.phpt
@@ -0,0 +1,32 @@
+--TEST--
+Bug #46944 (json_encode() doesn't handle 3 byte utf8 correctly)
+--SKIPIF--
+<?php if (!extension_loaded('json')) print 'skip'; ?>
+--FILE--
+<?php
+
+for ($i = 1; $i <= 16; $i++) {
+ echo json_encode(b"aa" . (0xf0|($i >> 2)) . (0x8f|($i & 3) << 4) . "\xbf\xbdzz") . "\n";
+}
+
+
+echo "Done\n";
+?>
+--EXPECT--
+"aa\ud83f\udffdzz"
+"aa\ud87f\udffdzz"
+"aa\ud8bf\udffdzz"
+"aa\ud8ff\udffdzz"
+"aa\ud93f\udffdzz"
+"aa\ud97f\udffdzz"
+"aa\ud9bf\udffdzz"
+"aa\ud9ff\udffdzz"
+"aa\uda3f\udffdzz"
+"aa\uda7f\udffdzz"
+"aa\udabf\udffdzz"
+"aa\udaff\udffdzz"
+"aa\udb3f\udffdzz"
+"aa\udb7f\udffdzz"
+"aa\udbbf\udffdzz"
+"aa\udbff\udffdzz"
+Done