我正在努力解决在PHP和Javascript之间交换包含换行符和unicode字符的数据所涉及的问题。我在Chrome中的测试只提出了一个真正的问题 - JavaScript不能JSON.parse任何包含新行字符的东西(以及我想象的其他控制字符?)
这是展示我的一些实验的fiddle。以下是生成PHP JSON输出的方法
<?php
$x = '{"hwWithLF":"Hello World!\nHow are you","hwInChinese":
"世界,你 好","index":2,"good":false}';
header('Content-Type: text/plain; charset=utf-8');
$x = json_decode($x);
echo json_encode($x);
?>
我在发布之前测试我的应用程序的最后阶段,并且对由于服务器和客户端之间的JSON交换中的这些功能而可能出现的问题知之甚少。
我非常感谢任何能够在这里提出 dos ,不要和陷阱的人。除了编码此类交换的微妙之处,还有任何特定于浏览器的问题,应该注意哪些?
答案 0 :(得分:0)
我的测试,在Chrome中,只提出了一个真正的问题 - JavaScript不能
JSON.parse
任何包含新行字符的内容(以及我想象的其他控制字符?)
JSON.parse
会正确处理新行。我也没有看到你联系过的小提琴有任何错误。
> JSON.stringify('foo\nbar')
'"foo\\nbar"'
> JSON.parse('"foo\\nbar"')
'foo\nbar'
要记住的一件事是,原始U + 2028和U + 2029字符可以是JSON格式字符串的一部分,但它们不能出现在JavaScript字符串文字中,因为JavaScript将它们视为行终止符(即新行)。请参阅Hacking with Unicode, slides 134–146。