2013-10-21 174 views
-2

我只是在使用json_encode时遇到了奇怪的行为。PHP json_encode“<n”

编辑:我使用php 5.4.4上的debian与Apache,这是唯一的线上的PHP文件,没有别的,它的工作在命令行PHP的okey,基本上是这样的;

<? 

echo json_encode("B}c5KUKv;?Ch?D_{>wFU\ZV&ScMPorb;brVu&~N:!p.Sz~^xO#<<JOkK_j~u:WH1"); 

那就是它。这里是铬html源代码的结果;

"B}c5KUKv;?Ch?D_{>wFU\\ZV&ScMPorb;brVu&~N:!p.Sz~^xO#< 

[解决]:看起来这是一个内容类型问题。无论如何,我只需添加标题('Content-Type:application/json; charset = utf-8');一切都恢复正常。

谢谢Lekensteyn请回答这个问题,我会接受它作为答案。

+1

你的'Content-Type'是什么? – Lekensteyn

+1

在使用'json_encode'之前,你可以试试'htmlentities'' –

+1

你是如何查看json的? –

回答

0

我不能复制这个使用PHP 5.5.4

它按预期工作,输出整个字符串的JSON编码表示。

也许如果你使用的是PHP的一个旧版本,你可能需要一个选项传递到json_encode,这是在manual

+0

对不起,我忘了说它的 header('Content-Type:text/html; charset = utf-8'); 和即时通讯使用PHP 5.4.4 – Abides

1

详细呀,我不能得到它的错误行为或者

http://codepad.org/TVuExbm0

+0

是键盘使用最新版本的PHP?我忘了说你需要添加标题('Content-Type:text/html; charset = utf-8');我也无法使用键盘复制错误。我使用PHP 5.4.4 – Abides