最新消息:

让Json更懂中文(JSON_UNESCAPED_UNICODE)

php admin 2929浏览 0评论

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

<?php
echo json_encode("中文");

//"u4e2du6587"

这就让我们这些在天朝做开发的同学, 很是头疼, 有的时候还不得不自己写json_encode.

而在PHP5.4, 这个问题终于得以解决, Json新增了一个选项: JSON_UNESCAPED_UNICODE, 故名思议, 就是说, Json不要编码Unicode.

看下面的例子:

<?php
echo json_encode("中文", JSON_UNESCAPED_UNICODE);

//"中文"

怎么样, 是不是让大家很开心的改动? 呵呵, 当然, Json在5.4还加入了: JSON_BIGINT_AS_STRING, JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES等选项, 如果有兴趣, 大家可以参看: json_encode

不过, 还是要提醒下: PHP 5.4还处于开发阶段, 在最终release之前, 任何新特性都可能被调整或者更改. 如果大家有任何建议, 也欢迎反馈, 帮助我们使得PHP变得更好.

谢谢

更多更新信息, 请关注: Changelog


Comments

  • 2011/10/10, jackywdx writes: 喔,这个特性很爽啊。
  • 2011/10/11, jeffliu writes: 超爱这个。
    json_encode编码中文非常的恶心。
    json_encode也会把大值int使用科学计数法表示 恶心死。
  • 2011/10/11, istrone writes: 对了,PHP好像还有一个bug,就是ip2long的返回值有时候会出现负数。
  • 2011/10/11, jueying writes: 不错,很实用!持续关注中!
  • 2011/10/11, darasion writes: 我不觉得这个特性好。虽然一时看着爽,接踵而来的编码问题将会产生广泛而深入的影响。
  • 2011/10/12, 小鑫 writes: 这个属性比较好,期待中呀
  • 2011/10/13, dvaknheo writes: 追加 parse_url 的逆函数吧。很讨厌每次都要去 评论里 抄 glue_url
  • 2011/10/14, rainkid writes: 使用下面命令:
    php -r “var_dump(json_encode(‘1’));”
    输出是:
    string(3) “”1″”
    为什么会有两层引号?
  • 2011/10/19, wclssdn writes: – – 鸟哥能加个插件不.. 当我敲错验证码的时候, 把评论保留… 白打那么多字了..
  • 2011/10/19, 雪候鸟 writes: @wclssdn 后退, 内容还在.
  • 2011/10/19, 小桑 writes: 哈哈,太爽了。
  • 2011/10/20, 转烛 writes: 昨天还正在为这个苦恼呢,没想到今天就看到这个内容。
  • 2011/10/31, 朱宝祥 writes: 正在学习json中,感觉你什么都懂。。
  • 2011/10/31, anthony writes: PHP 5.4是否真的对性能,内存使用有很大改善
  • 2011/11/16, 大草原 writes: istrone | 11 Oct 2011 11:01
    对了,PHP好像还有一个bug,就是ip2long的返回值有时候会出现负数。sprintf(‘%u’, ip2long($ip));
  • 2011/11/16, Anonymous writes: 希望PHP同时实现64位和32位整数的支持,及无符号整数,这样也能解决ip2long的问题
  • 2011/12/02, Shallker writes: 虽然在客户端console.log直接打印出的是’类似”u***”的格式’, 但是在用jQuery接收时先声明数据格式是json, 那么打出来的就还是正确的中文, 不是u*的格式了. 推论出是不是在客户端需要先对json数据进行下解析.
  • 2011/12/07, kangzj writes: 您好,如果想让把php 5.3的json.so升级到这个版本,应该如何操作呢。我用PEAR安装了json 1.2.1,发现并不支持此项功能,可以加我gtalk吗?就是我的email地址,谢谢!
  • 2011/12/08, kevin writes: 直接输出UTF8的汉字字符串,并不符合JSON标准,这个怎么考虑的?JSON.ORG的字符串说明:

    string
    “”
    ” chars ”
    chars
    char
    char chars
    char
    any-Unicode-character-
    except-“-or–or-
    control-character

    \
    /
    b
    f
    n
    r
    t
    u four-hex-digits

    @see: http://json.org/string.gif

  • 2011/12/08, zeg writes: 哦哦哦哦哦哦哦!终于有人改这个了!我一直想发信和你说这事呢~
  • 2011/12/12, liuxd writes: 啊哈,这个改动很棒啊!话说5.4啥时候发布啊?有比较准确的时间表吗?

Related posts:


Copyright © 2010 风雪之隅 版权所有, 转载务必注明. 该Feed只供个人使用, 禁止未注明的转载或商业应用. 非法应用的, 一切法律后果自负. 如有问题, 可发E-mail至my at laruence.com.(Digital Fingerprint: 73540ba0a1738d7d07d4b6038d5615e2)

Random Posts:

转载请注明:爱开源 » 让Json更懂中文(JSON_UNESCAPED_UNICODE)

您必须 登录 才能发表评论!