php javascripton_encode不转义中文汉字的方法

北京园林的色彩大多为金黄或大红,色彩明丽。有时,在万绿丛中见一道飞檐,黄绿相间,相映成趣。大多数宫殿者哺着琉璃瓦,大红色的棱、柱过于庄重,而幽雅倒显得欠缺。也有例外的,潭拓寺的大殿都是由灰色方砖铺地,墙壁也都是灰暗的,同周围的景色浑然一体。 "苔痕上阶绿,草色入帘青 ",古朴淡雅,别具风采。

php json_encode 函数在转义含有中文汉字的数据为json格试数据时,会将数据中的中文汉字转换成 unicode 格式的字符,如果我们要保留汉字原有的格式该如何做呢?

json_encode 不转义汉字的方法

1、php版本高于 5.4 的处理方法

在高于5.4版本的php中,可以将 json_encode 函数的第二个参数设置为 JSON_UNESCAPED_UNICODE,则 json_encode 函数处理含有中文汉字的数据时,其中文汉字不会转换成 unicode 格式的字符!

示例代码:

<?php
$arr = array('code' => 'success','msg' => '这里是一个提示的内容');
echo json_encode($arr);
//输出的JSON: {"code":"success","msg":"\u8fd9\u91cc\u662f\u4e00\u4e2a\u63d0\u793a\u7684\u5185\u5bb9"}
echo json_encode($arr,JSON_UNESCAPED_UNICODE); // 将第二个参数设置为:JSON_UNESCAPED_UNICODE
//输出的JSON:{"code":"success","msg":"这里是一个提示的内容"}

2、php版本低于 5.4 的处理方法

代于 5.4 版本的php中,json_encode 函数的第二个参数不起作用,则需要自己定义函数来实现不转义汉字的方法。

示例1:

根据网上提供的方法,先将数据中的中文进行urlencode, 在将 json_encode 处理后的字串整体进行 urldecode,就可以啦。可以参考下面的方法!

<?php
$arr = array('Name' => '墨初','Host' => 'http://feiniaomy.com');
//需要判断一个php的版本
if(version_compare(PHP_VERSION,'5.4.0','<')) {
    foreach($arr as $key => $value){  
    $jsonstr[$key] = urlencode($value);
    }
    echo urldecode(json_encode($jsonstr));
}else{
    echo json_encode($arr);
}
?>

示例2:

对于简单的一组数组可以按照以面的方法来处理,但对于多维数组的转换,可以使用下面定义的函数

<?php
$arr = array(
    'Name' => '墨初',
    'Host' => 'http://feiniaomy.com',
    'address' => array(
       'Tel' => '1234567890',
       'address' => '北京市东城区'
    )
);
//自定义函数
function no_json_encode($array){
if(version_compare(PHP_VERSION,'5.4.0','<')) { //判断php版本
foreach($array as $key => $value){  
if(!is_array($value)){
$jsonstr[$key] = urlencode($value);
}else{
$jsonstr[$key] = urlencode(no_json_encode($value));
}
}  
$jsonstr = urldecode(json_encode($jsonstr)); 
$jsonstr = str_replace(']"', ']', str_replace('"[', '[', $jsonstr)); 
}else{
$jsonstr = json_encode($array, JSON_UNESCAPED_UNICODE); 
}
return $jsonstr;
}
//使用自定义函数 feiniaomy.com
echo no_json_encode($arr);  
?>

本文php javascripton_encode不转义中文汉字的方法到此结束。不论你的生活如何卑微,你要应对它生活,不要躲避它,更别用恶言咒骂它。小编再次感谢大家对我们的支持!

您可能有感兴趣的文章
php get_magic_quotes_gpc()函数介绍与用法

php取消运行时间限制的方法

php中ini_set函数介绍

php获取文件夹下所有文件/文件夹

php如何实现文件下载的方法