`
jordan_micle
  • 浏览: 240348 次
  • 性别: 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
分享到:
评论

相关推荐

    让Json更懂中文(JSON_UNESCAPED_UNICODE)

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

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

    本文主要介绍针对PHP5.4以下版本的json_encode不兼容JSON_UNESCAPED_UNICODE的处理,需要的朋友可以参考下。

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

    主要给大家分享了PHP中如何让json_encode不自动转义斜杠“/”的两种方法,文中给出了详细的示例代码,相信对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。

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

    本文实例讲述了PHP实现json_decode不转义中文的方法。分享给大家供大家参考,具体如下: ...json_encode($a, JSON_UNESCAPED_UNICODE); 对于PHP5.3版本,可以先把ASCII 127以上的字符转换为HTML数值,这样避免

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

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

    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和js中json的编码和解码

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

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

    在php5.4以前做json_encode的时候中文会被unicode编码,中文都会... //”中文” php5.4让json更懂中文! 5.4之前不进行unicode转码,有3种方法处理: 但其实前两种方式是会导致问题,在一些特殊的情况下。如下例: 复制

    tp5.0阿里大于短信扩展

    return json_encode($msg,JSON_UNESCAPED_UNICODE); }else{ $msg['code'] = $array; $msg['Message'] = "OK"; return json_encode($msg,JSON_UNESCAPED_UNICODE); } } /**********************************...

    mysql5.6及以下版本如何查询数据库里的json

    json_encode(array(),JSON_UNESCAPED_UNICODE); 好处:这样查询的时候中文字符更好的匹配查询 2:字段统一 存的时候最好开始定好字段名称 ,开发一个大点的项目不可能一个人开发统一字段可以减少很多不需要的麻烦...

Global site tag (gtag.js) - Google Analytics