这是我经常遇到的情况,我通常会求助于try and try try方法,直到数据正常工作。我认为这样应该知道维护数据的最佳实践是什么,而不是搞乱json。
假设我要发送的数据是最烦人的文本数据--特殊字符&、<、“、\n、\n\r、\t、+等。
我们还假设我希望将所有内容都保存在utf8中,并且我的mysql表被配置为utf8。但是,由于缺乏PHP的utf8支持,应该考虑这一点。
我应该从哪些编码/转义/from实体中进行操作:
1)通过AJAX POST将JSON数据从客户端JS发送到PHP (GET有什么不同?)
2)在PHP中解码数据并将文本字符串存储在mysql数据库中(或者存储转义/编码的数据?)
3)用PHP语言从MySQL DB中检索数据,并作为对JS AJAX请求的JSON响应返回
4)在我们的REST api的JSON响应中
发布于 2011-07-21 02:48:09
每当我使用php/mysql/jquery来回传递数据时,我最终都会使用以下编码/转义的组合,它似乎对我很有效。
1)你不需要在这里做任何事情,除非你正在发送一个URL (我认为这只适用于GET请求)-但是如果你正在发送一个url,你需要使用encodeURIComponent( url ),它将正确地转义url中的&和特殊字符(参见更多here)。
2)使用mysqli和绑定参数,它会为你做所有的转义(阅读here)
3)在将数据回显到HTML文件中时,我总是使用这个:
<?php
htmlspecialchars($string_to_escape, ENT_QUOTES, 'UTF-8', false);
?>这将正确地对所有特殊字符进行编码( false表示“无双重编码”)。还要确保在html页面的顶部添加适当的UTF-8元标记。
4)使用json_encode应该总是正确地转义您的数据,但我将使用#3中的代码来确保。但您可能只在返回包含特殊字符的数据时才需要它。
发布于 2011-07-20 17:15:55
将json数据发送到的
相同
https://stackoverflow.com/questions/6759480
复制相似问题