php json_encode unicode decode

<?php
$a = array(
        'a' => '你好',
        'b' => 'bb'
);
//header('Content-Type:application/json; charset=UTF-8');
echo json_encode($a)."\n";
function decodeUnicode($str)
{
    return preg_replace_callback('/\\\\u([0-9a-f]{4})/i',
        create_function(
            '$matches',
            'return mb_convert_encoding(pack("H*", $matches[1]), "UTF-8", "UCS-2BE");'
        ),
        $str);
}

echo decodeUnicode(json_encode($a))."\n";
?>

参考资料:http://stackoverflow.com/questions/2934563/how-to-decode-unicode-escape-sequences-like-u00ed-to-proper-utf-8-encoded-char

http://php.net/manual/en/function.preg-replace-callback.php

posted @ 2011-05-28 13:19  sink_cup  阅读(2501)  评论(3编辑  收藏  举报
Creative Commons License

本站原创作品采用知识共享署名 3.0许可协议进行许可。