【问题标题】:Json encode doesn't work when special characters are used使用特殊字符时 Json 编码不起作用
【发布时间】:2015-04-30 20:08:17
【问题描述】:

我正在将一些数据从视图发送到 php 中的控制器。我在发送数据时使用 json_encode,另一方面使用 json_decode。整个工作正常,但是当我在数据中使用一些特殊字符(如单引号或双引号)时,它会失败并且没有接收到数据。有没有办法解决这个问题?我尝试过使用 base64 编码的序列化和反序列化,它对我有用,但即使只有很少的记录,它也很慢。

注意:$data 是一个多维数组

base64_encode(序列化($data)) 反序列化(base64_decode($data))

【问题讨论】:

  • json编码前使用addslashesh,解码时使用php的stripslashesh函数。你可以在 php 手册中阅读这两个函数的详细信息
  • 我的数据是多维数组,所以addslashesh 不起作用,因为它需要一个字符串作为输入。
  • 这个答案可能会有所帮助:stackoverflow.com/a/20694425/2568469

标签: php json


【解决方案1】:

如果您使用 PHP 对 HTML 标记属性中的 json 进行编码,则应使用 htmlentities 函数另外对 html 实体进行编码。 发送数据时,可以使用javascript解码实体,也可以使用php使用html_entity_decode解码,然后就可以解码json了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-26
    • 2021-01-25
    • 1970-01-01
    • 2020-09-20
    • 1970-01-01
    • 2016-06-02
    • 1970-01-01
    相关资源
    最近更新 更多