diff options
author | Andreas Gohr <andi@splitbrain.org> | 2005-10-17 22:04:31 +0200 |
---|---|---|
committer | Andreas Gohr <andi@splitbrain.org> | 2005-10-17 22:04:31 +0200 |
commit | 15fa0b4f1d7eb4b260ff5b8025c56fce3681148e (patch) | |
tree | eb71f504982f49e497ada40bbbac35b24383a72a /inc/JSON.php | |
parent | faa28b7fc56238d32739d949fd2df3bffe33b1ba (diff) | |
download | rpg-15fa0b4f1d7eb4b260ff5b8025c56fce3681148e.tar.gz rpg-15fa0b4f1d7eb4b260ff5b8025c56fce3681148e.tar.bz2 |
removed mb_string requirement in JSON.php #592
darcs-hash:20051017200431-7ad00-c9ed74326a44b078cc516e08515375d9d0fba811.gz
Diffstat (limited to 'inc/JSON.php')
-rw-r--r-- | inc/JSON.php | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/inc/JSON.php b/inc/JSON.php index 6345743fc..2958d3419 100644 --- a/inc/JSON.php +++ b/inc/JSON.php @@ -57,6 +57,10 @@ * @link http://pear.php.net/pepr/pepr-proposal-show.php?id=198 */ +// for DokuWiki +if(!defined('DOKU_INC')) define('DOKU_INC',realpath(dirname(__FILE__).'/../').'/'); +require_once(DOKU_INC.'inc/utf8.php'); + /** * Marker constant for JSON::decode(), used to flag stack state */ @@ -191,7 +195,8 @@ class JSON // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 $char = pack('C*', $ord_var_c, ord($var{$c+1})); $c+=1; - $utf16 = mb_convert_encoding($char, 'UTF-16', 'UTF-8'); + //$utf16 = mb_convert_encoding($char, 'UTF-16', 'UTF-8'); + $utf16 = utf8_to_utf16be($char); $ascii .= sprintf('\u%04s', bin2hex($utf16)); break; @@ -202,7 +207,8 @@ class JSON ord($var{$c+1}), ord($var{$c+2})); $c+=2; - $utf16 = mb_convert_encoding($char, 'UTF-16', 'UTF-8'); + //$utf16 = mb_convert_encoding($char, 'UTF-16', 'UTF-8'); + $utf16 = utf8_to_utf16be($char); $ascii .= sprintf('\u%04s', bin2hex($utf16)); break; @@ -214,7 +220,8 @@ class JSON ord($var{$c+2}), ord($var{$c+3})); $c+=3; - $utf16 = mb_convert_encoding($char, 'UTF-16', 'UTF-8'); + //$utf16 = mb_convert_encoding($char, 'UTF-16', 'UTF-8'); + $utf16 = utf8_to_utf16be($char); $ascii .= sprintf('\u%04s', bin2hex($utf16)); break; @@ -227,7 +234,8 @@ class JSON ord($var{$c+3}), ord($var{$c+4})); $c+=4; - $utf16 = mb_convert_encoding($char, 'UTF-16', 'UTF-8'); + //$utf16 = mb_convert_encoding($char, 'UTF-16', 'UTF-8'); + $utf16 = utf8_to_utf16be($char); $ascii .= sprintf('\u%04s', bin2hex($utf16)); break; @@ -241,7 +249,8 @@ class JSON ord($var{$c+4}), ord($var{$c+5})); $c+=5; - $utf16 = mb_convert_encoding($char, 'UTF-16', 'UTF-8'); + //$utf16 = mb_convert_encoding($char, 'UTF-16', 'UTF-8'); + $utf16 = utf8_to_utf16be($char); $ascii .= sprintf('\u%04s', bin2hex($utf16)); break; } @@ -411,7 +420,8 @@ class JSON // single, escaped unicode character $utf16 = chr(hexdec(substr($chrs, ($c+2), 2))) . chr(hexdec(substr($chrs, ($c+4), 2))); - $utf8 .= mb_convert_encoding($utf16, 'UTF-8', 'UTF-16'); + //$utf8 .= mb_convert_encoding($utf16, 'UTF-8', 'UTF-16'); + $utf8 .= utf16be_to_utf8($utf16); $c+=5; } elseif(($ord_chrs_c >= 0x20) && ($ord_chrs_c <= 0x7F)) { @@ -612,4 +622,4 @@ class JSON } -?>
\ No newline at end of file +?> |