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

今天被 Unicode 浪费了一下午的时间,求大神看看这个问题

  •  
  •   shiji · 2017-06-17 04:56:06 +08:00 · 1323 次点击
    这是一个创建于 3019 天前的主题,其中的信息可能已经有所发展或是发生改变。
    用的是 Datatables Editor, 对单一表的增删查改。
    问题出在获取数据的 ajax ( Datatables Editor 返回的 AJAX )是完全空白的(不是空白 ajax {} 那样的,是纯空白 ),HTTP200. 打开 PHP 所有错误显示都没有任何错误。如果 SQL/数据库出现错误 ajax 里面起码会有错误信息。

    然后为了找错,我去调整 Field::inst (也就是 select 后面跟的列的名称),发现只要去掉一个叫 question 的列就没有问题了。
    进一步查错,用 where id = x 一次显示一行,发现是第五行出的问题。只要包含了第五行 question 这一列,结果就完全空白。

    这行 question 的内容是这样的:
    What are the 5 common types of “ dizziness ” seen in xxx program?
    json encode 的结果:
    echo json_encode(array('a'=>'What are the 5 common types of “ dizziness ” seen in xxx program?'));
    {"a":"What are the 5 common types of \u201cdizziness\u201d seen in xxx program?"}

    离谱的事情出现了:
    我把这一段
    What are the 5 common types of “ dizziness ” seen in xxx program?
    复制粘贴到生产服务器的 php -a 下面的时候, 结果是这样的



    dizziness 自动跑到了光标后面,\u201c \u201d 这俩引号不见了。

    粘贴在本地环境的 php -a 就没这个问题(本地 7.0, 远程 5.5.9 )

    远程直接贴在 php 文件里面再 json_encode 结果和本地一样的,感觉问题不在这里

    有哪位大神知道这是什么情况? 早期 PHP 的 bug ?
    目前尚无回复
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1059 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 23:19 · PVG 07:19 · LAX 16:19 · JFK 19:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.