`
jordan_micle
  • 浏览: 245076 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

JSON_UNESCAPED_UNICODE让json_encode更适合中文

 
阅读更多

我们知道,用PHP的json_encode来处理中文的时候,中文会被unicode编码,类似\u***的格式。不可读且在一定程度上增加传输的数据量。

例如:

echo json_encode("中文"); //结果为:"\u4e2d\u658"

因为不可读,这对于开发过程中进行调试很是头疼。那么有没有解决的办法呢?

在PHP5.4,这个问题终于得到解决。json_encode新增了第二个参数:JSON_UNESCAPED_UNICODE,顾名思义,不要用unicode编码中文。

看下面的例子:

echo json_encode("中文", JSON_UNESCAPED_UNICODE); //结果为:"中文"

See?输出结果可读。但仍有一个疑问:PHP开发最经常用到JSON输出的情况是,来自前端AJAX的请求,而且jQuery的$.ajax方法解析json_encode($var)返回的结果非常流畅。那么现在实现了可读性结果输出,对jQuery的解析有没有影响呢?看下面的例子:

$.ajax({
       type: 'GET',
       url: 'back.php',
       success: function(xhr) {
              document.write("key1:" + xhr.key1 + "<br>");
              document.write("中文键:" + xhr.中文键 + "<br>");
       },
       dataType: 'JSON'
})

 后端代码:

$var = array(
       'key1' => 'this is key',
       '中文键' => '中文值',
       'key2' => '中文abc'
);
echo json_encode($var, JSON_UNESCAPED_UNICODE);

输出结果:

PERFECT!!!

  • 大小: 13.3 KB
分享到:
评论

相关推荐

    php中json_encode不兼容JSON_UNESCAPED_UNICODE的解决方案

    这种兼容性解决方案提供了一种方式,让那些在旧版本PHP环境下工作的开发者能够使用类似于PHP 5.4及以上版本中提供的JSON_UNESCAPED_UNICODE的功能,以便于在JSON数据交换过程中处理中文字符等问题,保证了更好的数据...

    让Json更懂中文(JSON_UNESCAPED_UNICODE)

    复制代码 代码如下: &lt;?php echo json_encode(“中文”); //”\u4e2d\u6587″ 这就让我们这些...php echo json_encode(“中文”, JSON_UNESCAPED_UNICODE); //”中文” 怎么样, 是不是让大家很开心的改动? 呵呵, 当

    PHP JSON_ENCODE 不转义中文汉字的方法.rar

    PHP提供了一个可选的标志`JSON_UNESCAPED_UNICODE`,它可以防止`json_encode`函数转义UTF-8编码的Unicode字符,也就是中文汉字。在调用`json_encode`时,加入这个标志即可保留中文汉字的原始形式。示例如下: ```...

    PHP中让json_encode不自动转义斜杠“/”的方法

    通过在json_encode函数中加入JSON_UNESCAPED_SLASHES标志,可以直接生成不转义斜杠的JSON字符串。这种方法不需要后续的字符串替换,因此效率更高,且代码更简洁。 示例代码如下: ```php $a = array( '***', '**...

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

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

    PHP MYSQL 查询汉字jsonencode处理

    4. **json_encode参数**:在调用`json_encode`时,添加`JSON_UNESCAPED_UNICODE`选项。这个选项会保持Unicode字符(如汉字)的原样,而不是将其转义为`\uXXXX`形式。例如: ```php $result = json_encode($array, ...

    基于php解决json_encode中文UNICODE转码问题

    用PHP的json_encode来处理中文的时候, 中文都会...echo json_encode(“中文”, JSON_UNESCAPED_UNICODE); //”中文” 2.把汉字先urlencode然后再使用json_encode,json_encode之后再次使用urldecode来解码,这样编码

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

    在使用PHP进行Web开发时,常常需要对数据进行编码转换为JSON格式以便于数据的传输。...在升级到支持JSON_UNESCAPED_UNICODE的PHP版本后,建议使用原生的json_encode函数,以获得更佳的性能和安全性。

    由php对象生成json字符串 把php对象变成json字符串.zip

    JSON_UNESCAPED_UNICODE则允许保留Unicode字符,避免乱码问题。 ```php $options = JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE; $json = json_encode($data, $options); ``` 在处理错误时,json_last_error()...

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

    return json_encode($input, JSON_UNESCAPED_UNICODE); } if(is_string($input)){ $text = $input; $text = str_replace('\\', '\\\\', $text); $text = str_replace(array("\r", "\n", "\t", "\""), array('\...

    php-json-encode:提供了从 5.3.0 版开始添加到 json_encode 中的功能,适用于 5.3.0 版

    &gt;=5.4.0 选项 JSON_UNESCAPED_UNICODE 允许按字面编码多字节 Unicode 字符(默认为转义为 \uXXXX)。 &gt;=5.3.3 选项 JSON_NUMERIC_CHECK 允许您将数字字符串编码为数字。 用法 $ data = array ( 'foo' =&gt; 'bar' );...

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

    大家都知道,json_encode通常会把json中的汉字转义成unicode,但是这并不一定是我们想要的。有时候,我们需要获得汉字形式的json字符串,比如需要获得gbk编码的json字符串(只要把汉字形式的字符串转码就可以得到了)...

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

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

    微信api不支持中文转义的json结构

    $encodedData = json_encode($data, JSON_UNESCAPED_UNICODE); ``` 这样得到的JSON字符串中,中文字符将保持原样,而不是转义为Unicode形式。 2. **手动处理**:如果微信API确实要求不转义的中文字符,你也可以...

    PHP5.4中json_encode中文转码的变化小结

    升级后可以使用JSON_UNESCAPED_UNICODE选项,从而在编码时避免中文字符的Unicode转义,让json_encode的行为更符合中文用户的需求。 总结来说,在处理中文字符与JSON编码的问题时,最好的做法是更新PHP版本至5.4或更...

    浅谈php和js中json的编码和解码

    echo json_encode(“中文”, JSON_UNESCAPED_UNICODE);   添加参数:JSON_UNESCAPED_UNICODE即可。 测试环境: PHP Version 5.5.36 js中 1. 编码 var str = obj.toJSONString();//需要JSON解析器或工具类 2. 解码 ...

Global site tag (gtag.js) - Google Analytics