最近在做CactiEZ的二次开发, 在将对象转化成json串之后发现中文变成了unicode编码, 几经周折终于解决了。 记录下解决办法,希望能够帮助到遇到同样问题的朋友。
//json_encode()函数在php5.4.0之后可以通过传入参数JSON_UNESCAPED_UNICODE保持中文原样, 不进行Unicode 转码.
echo unicode_decode(json_encode($response));
function unicode_decode($name)
{
// 转换编码,将Unicode编码转换成可以浏览的utf-8编码
$pattern = '/([\w]+)|(\\\u([\w]{4}))/i';
preg_match_all($pattern, $name, $matches);
if (!empty($matches))
{
for ($j = 0; $j < count($matches[0]); $j++)
{
$str = $matches[0][$j];
if (strpos($str, '\\u') === 0)
{
$code = base_convert(substr($str, 2, 2), 16, 10);
$code2 = base_convert(substr($str, 4), 16, 10);
$c = chr($code).chr($code2);
$c = iconv('UCS-2BE', 'UTF-8', $c);//'UCS-2BE'根据系统的不同可能是别的值.
$name=str_replace($str, $c, $name);
}
else
{
// $name .= $str;
}
}
}
return $name;
}
分享到:
相关推荐
在PHP中,将PHP对象转换成JSON(JavaScript Object Notation)字符串是一项常见的任务,尤其是在进行Web开发时,因为JSON是一种轻量级的数据交换格式,它允许服务器向客户端发送数据,并在客户端进行解析。...
五、JSON与PHP对象的映射 当`json_decode()`将JSON对象转换为PHP时,它会默认创建一个stdClass对象。如果想要将JSON对象转换为关联数组,可以设置第二个参数为`true`: ```php $json_obj = '{"name":"John", "age...
这个示例中,前端JavaScript通过Ajax向PHP发送Unicode字符串,PHP使用`json_decode`解码并转换为UTF-8编码的中文字符串,然后将结果返回给前端。整个过程无需刷新页面,实现了异步数据交互。 总结来说,这个"ajax_...
总之,要解决"PHP JSON显示中文"的问题,关键在于确保数据的UTF-8编码,以及正确使用json_encode和json_decode(或Services_JSON类)。在实际开发中,还要注意检查HTTP头设置,确保传输过程中编码一致,以防止乱码...
在PHP中,我们可以使用内置的`json_encode`函数将数组或对象转换为JSON字符串。 例如,假设我们有以下PHP数组: ```php $data = [ 'name' => 'John Doe', 'age' => 30, 'city' => 'New York' ]; ``` 要将其...
在上面的例子中,`$json_string` 是一个包含中文字符的JSON字符串,`true` 参数表示我们希望结果是一个关联数组而非对象,`512` 是深度限制(通常可忽略),而 `JSON_UNESCAPED_UNICODE` 参数则确保中文字符不会被...
`json_encode()`有多个可选参数,如`JSON_PRETTY_PRINT`用于美化输出,`JSON_UNESCAPED_UNICODE`保留中文字符不转义。 2. `json_decode()`函数:这个函数用于将JSON字符串解码为PHP值。如果第二个参数`true`,返回...
在前端,JavaScript提供了内置的JSON对象来处理JSON数据。主要有两个方法: 1. `JSON.parse()`:将JSON字符串转换为JavaScript对象。例如: ```javascript var jsonString = '{"name":"John", "age":30, "city":...
### PHP输出JSON及显示JSON中的中文汉字详解 #### 一、什么是JSON JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript的一个子集,其...
例如:’胥’经过json_encode处理后变为’\u80e5’,最终的json中中文部分被替换为unicode编码。我们要解决的就是将对象转换为json并保证对象内部的中文在json中仍然是以正常的中文出现,现在看来只使用json_encode...
在使用PHP的json_encode()函数将PHP数组或对象转换为JSON字符串时,如果字符串中包含汉字或其他非ASCII字符,这些字符默认会被转义为Unicode字符编码(例如\u4e2d\u6587),这种编码方式对机器友好,但对人来说阅读...
##json_decode_fixPHP的json_encode总有一些不通用的缺陷,例如不能解析js的json对象(当键名没有引号时)。json_decode_fix即可以解决部分bug,简单测试过string,integer,boolean等类型。继续测试中。
总结起来,处理PHP中的JSON中文问题关键在于确保数据以UTF-8编码,并且在必要时使用`JSON_UNESCAPED_UNICODE`选项。理解JSON的编码规则和PHP的处理方式,对于进行JSON数据操作至关重要。通过合理利用这些知识,...
值得注意的是,尽管`JSON_UNESCAPED_UNICODE`为处理中文字符带来了便利,但在PHP5.4版本发布之前,开发者必须自行为中文字符做特殊处理,例如通过自定义的编码函数来输出未转义的Unicode字符。 在享受这些新特性...
本篇将详细解释如何在PHP中解析JSON对象并输出其值。 首先,我们需要理解JSON的基本结构。JSON数据以键值对的形式存在,类似于JavaScript的对象,但也可以表示数组。例如,`{"report":{"date":"2012-04-10",...
这个文件包含了JSON语言的关键字、标识符、字符串、数字、对象和数组等元素的特定样式定义,使得在EditPlus中编辑或查看JSON数据时,能够实现颜色突出显示,提高代码可读性,提升开发效率。 JSON的结构主要由两种...
在这个例子中,`$json_string`是一个包含JSON格式数据的字符串,`json_decode()`将其解析成一个PHP对象,并存储在`$obj`变量中。默认情况下,`json_decode()`会返回一个关联数组,如果希望得到一个对象,可以在调用...
在PHP中,需要将这种格式转换为JSON字符串,然后使用`json_decode()`将其解析成PHP对象。例如: ```php $a = '{"a":"11","b":"22"}'; // JSON字符串 $b = json_decode($a); // $b现在是PHP的对象 ``` 3. **`...
json_encode函数是PHP中将数组或对象转换成JSON字符串的标准函数,但在处理中文字符时,json_encode默认会对这些非ASCII字符进行转义处理,将中文转换成形如"\u4f60\u597d"的Unicode编码形式,这对于需要保持数据...