Home > Article > Backend Development > Solution to unicode uxxxx appearing in json_encode array_PHP tutorial
During the Dragon Boat Festival and the Weibo application gift giving done last weekend, I designed the data format of ajax to return json. I did not completely use PHP’s default json_encode to encode, because the coded code is unicode. That is the encoding of u. Although unicode encoding can be encoded in different pages, there will be no garbled problem. However, if a Chinese character is encoded into Unicode, it will become u+4 characters, which is longer than the Chinese character.
Because I use UTF-8 in my php files and html statements, there will be no encoding garbled problems, so I gave up the method of using json_encode directly, and instead urlencode the Chinese characters first and then use json_encode , use urldecode again after json_encode to decode, so that the Chinese characters in the encoded json array will not be unicode encoded~
The code is as follows
//The default is: {"test":"u6211u662fu6d4bu8bd5"}
$array = array(
'test'=>urlencode("I am a test")
);
$array = json_encode($array);
echo urldecode($array);
//{"test":"I am a test"}
This is mainly to save the number of transmitted characters, because my gift-giving will introduce hundreds of friend information by default, and the data traffic is still relatively large~ Therefore, using Chinese character transmission will save bandwidth than unicode character encoding transmission~ Moreover, the page encoding problem has been solved, and there will be no garbled characters.
The problem of null in json_encode
If the document encoding or string encoding (for example, UTF-8 captures a GBK page) is non-UTF-8, the problem of json_encode encoding failure will occur, and the output Chinese characters will be null.
The solution is to use the iconv function to convert Chinese characters to UTF-8 before json_encode.
Encoding of compressed files of TBCompressor
TBCompressor is YUICompressor modified by Taobao UED team. It can support converting Chinese characters in js and css into unicode encoding. If there are too many Chinese characters in the js file, after compression On the contrary, there will be a problem of increasing the size. For example, a js is an array of place names of provinces, cities and counties across the country, which needs to be solved by modifying the TBCompressor configuration~
We can solve it by modifying the cmd file of TBCompressor without using native2ascii. In this way, you can also use TBCompressor on a computer that does not have JDK installed but only JRE. Of course, if the js and css files you want to compress are UTF-8 encoded, you need to modify the charset in TBCompressor to UTF-8. .
I’m going too far, let’s call it a day~
Original text: http://www.js8.in/697.html