When using PHP json_encode to handle Chinese, Chinese will be encoded, become unreadable, similar to the "\u***" format, if you want Chinese characters do not transcode, here are three ways
1. Upgrade PHP, in PHP5.4, the problem is finally resolved, JSON added an option: Json_unescaped_unicode, so the name Incredibles, that is, JSON do not encode UNICODE.
<?phpecho Json_encode ("Chinese", json_unescaped_unicode);//"Chinese"
2. UrlEncode the Chinese characters first and then use the Json_encode,json_encode again after using the UrlDecode to decode, so that the encoded JSON array of Chinese characters will not appear Unicode encoding.
$array = Array (' Test ' =>urlencode ("I Am Test"), $array = Json_encode ($array); Echo UrlDecode ($array);//{"test": "I am a Test"}
3. Decode the Unicode code and decode the function as follows:
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);}
Solve Json_encode Chinese Unicode transcoding problem