Cyrillic characters in PHP's json_encode Cyrillic characters in PHP's json_encode json json

Cyrillic characters in PHP's json_encode


I found this in the code of Zend framework:

http://framework.zend.com/svn/framework/standard/trunk/library/Zend/Json/Decoder.php

Take a look at the function decodeUnicodeString ( line 474 ):

 /**     * Decode Unicode Characters from \u0000 ASCII syntax.     *     * This algorithm was originally developed for the     * Solar Framework by Paul M. Jones     *     * @link   http://solarphp.com/     * @link   http://svn.solarphp.com/core/trunk/Solar/Json.php     * @param  string $value     * @return string     */    public static function decodeUnicodeString($chrs)

It's static, and you can easily extract it - just replace the line:

490:           $utf8 .= self::_utf162utf8($utf16);

with:

490:           $utf8 .= mb_convert_encoding($utf16, 'UTF-8', 'UTF-16');

Not an ideal solution, but did the job for me :o)


$str = json_encode($arr, JSON_UNESCAPED_UNICODE);

The use of this solution worked for me with the Latin and the Cyrillic alphabet, with PHP 5.5