`

php 对象转json 中文变Unicode问题

    博客分类:
  • php
阅读更多
最近在做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对象生成json字符串 把php对象变成json字符串.zip

    在PHP中,将PHP对象转换成JSON(JavaScript Object Notation)字符串是一项常见的任务,尤其是在进行Web开发时,因为JSON是一种轻量级的数据交换格式,它允许服务器向客户端发送数据,并在客户端进行解析。...

    PHP应用JSON技巧讲解 中文WORD版

    五、JSON与PHP对象的映射 当`json_decode()`将JSON对象转换为PHP时,它会默认创建一个stdClass对象。如果想要将JSON对象转换为关联数组,可以设置第二个参数为`true`: ```php $json_obj = '{"name":"John", "age...

    ajax使用示例-unicode转换中文

    这个示例中,前端JavaScript通过Ajax向PHP发送Unicode字符串,PHP使用`json_decode`解码并转换为UTF-8编码的中文字符串,然后将结果返回给前端。整个过程无需刷新页面,实现了异步数据交互。 总结来说,这个"ajax_...

    PHP JSON显示中文

    总之,要解决"PHP JSON显示中文"的问题,关键在于确保数据的UTF-8编码,以及正确使用json_encode和json_decode(或Services_JSON类)。在实际开发中,还要注意检查HTTP头设置,确保传输过程中编码一致,以防止乱码...

    php生成json和xml

    在PHP中,我们可以使用内置的`json_encode`函数将数组或对象转换为JSON字符串。 例如,假设我们有以下PHP数组: ```php $data = [ 'name' =&gt; 'John Doe', 'age' =&gt; 30, 'city' =&gt; 'New York' ]; ``` 要将其...

    PHP实现json_decode不转义中文的方法

    在上面的例子中,`$json_string` 是一个包含中文字符的JSON字符串,`true` 参数表示我们希望结果是一个关联数组而非对象,`512` 是深度限制(通常可忽略),而 `JSON_UNESCAPED_UNICODE` 参数则确保中文字符不会被...

    php下的json字符串转化讲解共3页.pdf.zip

    `json_encode()`有多个可选参数,如`JSON_PRETTY_PRINT`用于美化输出,`JSON_UNESCAPED_UNICODE`保留中文字符不转义。 2. `json_decode()`函数:这个函数用于将JSON字符串解码为PHP值。如果第二个参数`true`,返回...

    对json类型的数据进行解析

    在前端,JavaScript提供了内置的JSON对象来处理JSON数据。主要有两个方法: 1. `JSON.parse()`:将JSON字符串转换为JavaScript对象。例如: ```javascript var jsonString = '{"name":"John", "age":30, "city":...

    php 输出json及显示json中的中文汉字详解及实例

    ### PHP输出JSON及显示JSON中的中文汉字详解 #### 一、什么是JSON JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript的一个子集,其...

    php中json_encode中文编码问题分析

    例如:’胥’经过json_encode处理后变为’\u80e5’,最终的json中中文部分被替换为unicode编码。我们要解决的就是将对象转换为json并保证对象内部的中文在json中仍然是以正常的中文出现,现在看来只使用json_encode...

    Json_encode防止汉字转义成unicode的方法

    在使用PHP的json_encode()函数将PHP数组或对象转换为JSON字符串时,如果字符串中包含汉字或其他非ASCII字符,这些字符默认会被转义为Unicode字符编码(例如\u4e2d\u6587),这种编码方式对机器友好,但对人来说阅读...

    json_decode:json_decode_cn(PHPjson_decode非UNICODE版)和json_decode_fix(PHPjson_decode兼容js版)

    ##json_decode_fixPHP的json_encode总有一些不通用的缺陷,例如不能解析js的json对象(当键名没有引号时)。json_decode_fix即可以解决部分bug,简单测试过string,integer,boolean等类型。继续测试中。

    PHP的Json中文处理解决方案

    总结起来,处理PHP中的JSON中文问题关键在于确保数据以UTF-8编码,并且在必要时使用`JSON_UNESCAPED_UNICODE`选项。理解JSON的编码规则和PHP的处理方式,对于进行JSON数据操作至关重要。通过合理利用这些知识,...

    让Json更懂中文(JSON_UNESCAPED_UNICODE)

    值得注意的是,尽管`JSON_UNESCAPED_UNICODE`为处理中文字符带来了便利,但在PHP5.4版本发布之前,开发者必须自行为中文字符做特殊处理,例如通过自定义的编码函数来输出未转义的Unicode字符。 在享受这些新特性...

    php中输出json对象的值(实现方法)

    本篇将详细解释如何在PHP中解析JSON对象并输出其值。 首先,我们需要理解JSON的基本结构。JSON数据以键值对的形式存在,类似于JavaScript的对象,但也可以表示数组。例如,`{"report":{"date":"2012-04-10",...

    EditPlus JSON 语法文件 STX

    这个文件包含了JSON语言的关键字、标识符、字符串、数字、对象和数组等元素的特定样式定义,使得在EditPlus中编辑或查看JSON数据时,能够实现颜色突出显示,提高代码可读性,提升开发效率。 JSON的结构主要由两种...

    PHP JSON 数据解析代码

    在这个例子中,`$json_string`是一个包含JSON格式数据的字符串,`json_decode()`将其解析成一个PHP对象,并存储在`$obj`变量中。默认情况下,`json_decode()`会返回一个关联数组,如果希望得到一个对象,可以在调用...

    关于php中的json_encode()和json_decode()函数的一些说明

    在PHP中,需要将这种格式转换为JSON字符串,然后使用`json_decode()`将其解析成PHP对象。例如: ```php $a = '{"a":"11","b":"22"}'; // JSON字符串 $b = json_decode($a); // $b现在是PHP的对象 ``` 3. **`...

    PHP使用json_encode函数时不转义中文的解决方法

    json_encode函数是PHP中将数组或对象转换成JSON字符串的标准函数,但在处理中文字符时,json_encode默认会对这些非ASCII字符进行转义处理,将中文转换成形如"\u4f60\u597d"的Unicode编码形式,这对于需要保持数据...

Global site tag (gtag.js) - Google Analytics