Using the json_encode () built-in function (php & amp; gt; 5.2) in php enables data in php to be passed and used with other languages. This function converts a value to a json data storage format. & Amp; lt ;? Php $ arrarray (Name & amp; gt; Xia, Age & amp; gt; 20); $ jsone... using the json_encode () built-in function (php> 5.2) in php enables data in php to be well transmitted and used with other languages.
This function converts a value to a json data storage format.
Php code
'Age', 'age' => 20); $ jsonencode = json_encode ($ arr); echo $ jsonencode;?>
The program running result is as follows:
{"Name":null,"Age":20}
In the json_encode function, Chinese characters are encoded as null. after Google, it is very simple. to work closely with the front-end, Json only supports UTF-8 encoding. I think the front-end Javascript is also the reason for UTF-8 encoding.
Iconv ('gb2312', 'utf-8', 'Here is the Chinese title'), 'body' => 'abcd... '); echo json_encode ($ array);?>
The running result of this program is:
Js code
{"title":"\u8fd9\u91cc\u662f\u4e2d\u6587\u6807\u9898","body":"abcd..."}
All Chinese characters in the array are lost after json_encode or \ u2353 is displayed.
The solution is to use the urlencode () function to process the following. before json_encode, urlencode () is used to process all the content in the array, and json_encode () is used to convert the content into a json string, finally, use urldecode () to convert the encoded Chinese characters back.
Php code
1000) {die ('possible deep recursion attack');} foreach ($ array as $ key => $ value) {if (is_array ($ value )) {arrayRecursive ($ array [$ key], $ function, $ apply_to_keys_also);} else {$ array [$ key] = $ function ($ value );} if ($ apply_to_keys_also & is_string ($ key) {$ new_key = $ function ($ key); if ($ new_key! = $ Key) {$ array [$ new_key] = $ array [$ key]; unset ($ array [$ key]) ;}}$ recursive_counter --;} /*************************************** * ************************ convert an array to a JSON string (compatible with Chinese characters) * @ param array $ array the array to be converted * @ return string the converted json string * @ access public ***************** **************************************** * ***/function JSON ($ array) {arrayRecursive ($ array, 'urlencode', true); $ json = jso N_encode ($ array); return urldecode ($ json);} $ array = array ('name' => 'xia', 'age' => 20 ); echo JSON ($ array);?>
The operation is successful. The result is as follows:
Js code
{"Name": "Sia", "Age": "20 "}