V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
miaotaizi
V2EX  ›  PHP

同样一截 json 字符串,在两台机器上使用 json_decode 会得到不同的结果?

  •  
  •   miaotaizi · 2015-10-23 16:40:52 +08:00 · 3077 次点击
    这是一个创建于 3321 天前的主题,其中的信息可能已经有所发展或是发生改变。
    为何我用 json_decode 的时候 一台机器上的 中文 没问题,但是到另外一台机器上 执行 json_last_error() 会得到错误, 两台机器上的 php 版本相同.
    10 条回复    2015-10-24 20:54:43 +08:00
    marssun
        1
    marssun  
       2015-10-23 17:05:58 +08:00
    没有截图..没有具体情况
    paw
        2
    paw  
       2015-10-23 17:07:40 +08:00
    默认编码格式问题吧
    cxbig
        3
    cxbig  
       2015-10-23 17:09:11 +08:00
    编码问题,请确认放进 json_decode 的 json 字符串是 utf8 。
    miaotaizi
        4
    miaotaizi  
    OP
       2015-10-23 17:12:43 +08:00
    @marssun
    @paw
    @cxbig
    刚刚解决了, 我在 decode 之前,把字串里面的换行替换成<br/> 然后就没问题了.
    但是为何会有这样的问题呢?
    miaotaizi
        5
    miaotaizi  
    OP
       2015-10-23 17:23:07 +08:00
    是因为 \n 或\r 在双引号里面的原因吗?
    yangg
        6
    yangg  
       2015-10-23 18:02:01 +08:00
    json 字符串是自己拼接的吧,请使用数组 + json_encode
    holyghost
        7
    holyghost  
       2015-10-23 18:48:48 +08:00
    json 标准里面不允许换行符
    holyghost
        8
    holyghost  
       2015-10-23 18:49:20 +08:00
    json 必须 utf-8 encoded
    这都是必踩的坑啊
    shoaly
        9
    shoaly  
       2015-10-23 22:37:52 +08:00
    永远不要自己拼 json, 字符串拼接的才艺不用在 json 中展示
    miaotaizi
        10
    miaotaizi  
    OP
       2015-10-24 20:54:43 +08:00
    @yangg
    @holyghost
    @shoaly
    感谢大家,学习到了,谢谢.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1359 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 17:37 · PVG 01:37 · LAX 09:37 · JFK 12:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.