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

2015-10-23 16:40:52 +08:00
 miaotaizi
为何我用 json_decode 的时候 一台机器上的 中文 没问题,但是到另外一台机器上 执行 json_last_error() 会得到错误, 两台机器上的 php 版本相同.
3100 次点击
所在节点    PHP
10 条回复
marssun
2015-10-23 17:05:58 +08:00
没有截图..没有具体情况
paw
2015-10-23 17:07:40 +08:00
默认编码格式问题吧
cxbig
2015-10-23 17:09:11 +08:00
编码问题,请确认放进 json_decode 的 json 字符串是 utf8 。
miaotaizi
2015-10-23 17:12:43 +08:00
@marssun
@paw
@cxbig
刚刚解决了, 我在 decode 之前,把字串里面的换行替换成<br/> 然后就没问题了.
但是为何会有这样的问题呢?
miaotaizi
2015-10-23 17:23:07 +08:00
是因为 \n 或\r 在双引号里面的原因吗?
yangg
2015-10-23 18:02:01 +08:00
json 字符串是自己拼接的吧,请使用数组 + json_encode
holyghost
2015-10-23 18:48:48 +08:00
json 标准里面不允许换行符
holyghost
2015-10-23 18:49:20 +08:00
json 必须 utf-8 encoded
这都是必踩的坑啊
shoaly
2015-10-23 22:37:52 +08:00
永远不要自己拼 json, 字符串拼接的才艺不用在 json 中展示
miaotaizi
2015-10-24 20:54:43 +08:00
@yangg
@holyghost
@shoaly
感谢大家,学习到了,谢谢.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/230515

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX