在json_encode在php5.4中文转码的变化总结

当php5.4是用来做json_encode,中国将被编码的Unicode,中国将被编码为不可读的格式类似你***,这也将增加传送到一定的数据量。
例如:
复制代码代码如下所示:
< PHP
美元=中国;
回声json_encode($str);
/ / u6587 u4e2d
php5.4开始
回声json_encode($str,json_unescaped_unicode);
中文

php5.4让JSON更了解中国!
在5.4之前没有执行Unicode转码,并且有3种方法来处理它。
但事实上,前两种方法在某些特殊情况下会导致问题:
复制代码代码如下所示:
功能myjson($码){
代码= json_encode(urlencodeary美元($代码));
返回URLDecode($代码);
}
功能urlencodeary($数据){
如果(is_array($数据)){
foreach(美元美元美元数据关键= > Val){
{ } =美元美元关键数据urlencodeary(美元值);
}
返回$数据;
{人}
返回URLEncode($数据);
}
}
$ =数组(
0 =人民大连周水子机场之路,
1 = >操作时间:10 ~ 21:00票价:16元,间隔20分钟,在任何时候全部离开,
);
*
编码和解码,通过定期json_encode | json_decode
{ u5927 u8fde u5468 u6c34 u5b50 u673a u573a u2192 u4eba u6c11 u8def
◎uff1a5 u95f4 uff1a10 uff5e21 uff1a00 u7968 u4ef7 uff1a16 u5143 u53d1 u969420 u95f4 u8f66
◎u949f u5206 u4e00 u73ed uff0c u5ba2 u6ee1 u968f u65f6 u53d1 u8f66}
阵列(
0 =人民大连周水子机场之路,
1 = >操作时间:5:10~21:00票价:16元,间隔20分钟,在任何时候全部离开,

* /
1美元= json_encode($试验);
json_decode美元($ test1,test2 = true);
echo $ 1;
回声php_eol;
var_export($ test2);
回声php_eol;
*
通过myjson | json_decode编解码器,但将返回错误json_last_error(json_error_syntax = 4),
因为 大连周水子机场通往人民之路
大连周水子机场人民路
无效的
* /
test1_1美元= myjson($试验);
test2_1美元= json_decode(test1_1美元,真的);
echo $ test1_1;
回声php_eol;
var_export($ test2_1);
回声php_eol;
*
json_enco +包| json_decode用来编解码器来确保没有中文编码,但运行时间和票价将丢失的数据。
大连周水子机场-人民路
阵列(
0 =人民大连周水子机场之路,
1 =操作时间:~:票价:元间隔分钟,随时发车,

* /
功能replaceuni($str){
返回preg_replace(# U({ 0-9a-f } +)# IE
}
test1_2美元= replaceuni(json_encode($试验));
test2_2美元= json_decode(test1_2美元,真的);
echo $ test1_2;
回声php_eol;
var_export($ test2_2);
回声php_eol;

最后,总结,建议升级到php5.4,让PHP了解中国!