json_encode数组出现unicode uxxxx的解决方案_PHP教程
因为我的php文件和html声明中都是使用的UTF-8,不会出现编码乱码问题,所以就放弃了直接使用json_encode的方法,而是把汉字先urlencode然后再使用json_encode,json_encode之后再次使用urldecode来解码,这样编码出来的json数组中的汉字就不会出现unicode编码了~
代码如下
//默认为:{"test":"\u6211\u662f\u6d4b\u8bd5"}
$array = array(
'test'=>urlencode("我是测试")
);
$array = json_encode($array);
echo urldecode($array);
//{"test":"我是测试"}
此举主要是为了节省传输字符数,因为我的送大礼默认会引入几百个好友信息,对于数据的流量还是比较大的~所以采用汉字传输要比unicode字符编码传输要节省带宽~而且处理好了页面编码问题,不会出现乱码现象。
json_encode出null的问题
如果文档编码或者字符串编码(例如UTF-8抓取了一个GBK页面)为非UTF-8,就会出现json_encode编码失败的问题,变现为输出汉字为null。
解决的方法就是在json_encode之前用iconv函数将汉字转为UTF-8。
TBCompressor的压缩文件的编码
TBCompressor是淘宝UED团队修改的YUICompressor,可以支持将js、css中的汉字转为unicode编码,如果js文件中出现的汉字太多,压缩之后反而会出现体积变大的问题,例如一个js是全国省市县的地名数组,这样就要通过修改TBCompressor配置来解决~
我们可以通过修改TBCompressor的cmd文件,不使用native2ascii就可以解决,这样还可以在没装JDK只有JRE的电脑上使用TBCompressor。当然如果你要压缩的js、css文件是UTF-8编码的就需要修改一下TBCompressor中的charset为UTF-8。.
说着说着扯远了,打完收工~
原文:http://www.js8.in/697.html
下一篇: 域名查询代码公布
推荐阅读
-
PHP获取数组长度或某个值出现次数的方法,php数组_PHP教程
-
PHP获取数组长度或某个值出现次数的方法_PHP教程
-
Codeigniter出现错误提示Error with CACHE directory的解决方案_PHP教程
-
php中json_encode不兼容JSON_UNESCAPED_UNICODE的解决方案,jsonencodeunicode
-
php中使用Ajax时出现Error(c00ce56e)的详细解决方案,ajaxc00ce56e_PHP教程
-
PHP统计数值数组中出现频率最多的10个数字的方法_PHP教程
-
php中json_encode不兼容JSON_UNESCAPED_UNICODE的解决方案,jsonencodeunicode_PHP教程
-
php中使用Ajax时出现Error(c00ce56e)的详细解决方案,ajaxc00ce56e_PHP教程
-
PHP数组传递给JavaScript以及json_encode的gbk中文乱码的解决_PHP教程
-
Json_encode防止汉字转义成unicode的方法,json_encodeunicode_PHP教程