【问题标题】:Why does json_encode escape the forward slash ( / )? [duplicate]为什么 json_encode 会转义正斜杠( / )? [复制]
【发布时间】:2012-03-10 23:17:41
【问题描述】:

可能重复:
JSON: why are forward slashes escaped?

下面的函数参数是一个贯穿json_encode() 的字符串。我看到http:// 中的正斜杠被转义为http:\/\/。 显然,像<some_tag></some_tag> 这样使用时它是一个特殊字符,但仅在该结构中使用时。

没有直接的问题..但我需要了解转义来进行一些代码更新。

<script type='text/javascript'>Arc.ViewHBookmark('[{"id":"1","0":"1","title":"cybercoders","1":"cybercoders","url":"http:\/\/cybercoders.com","2":"http:

php.net - json_encode

相关

JSON: why are forward slashes escaped?

【问题讨论】:

    标签: php json


    【解决方案1】:

    对于嵌入在 HTML 文档中的 &lt;script&gt; 元素中的 JSON,它只是 &lt;/endtag&gt; 结构的安全网。

    它没有其他意义。

    【讨论】:

    • 在 JSON 中 "\/" 的含义与 "/" 相同。转义序列不依赖于靠近任何其他字符。转义字符不会被忽略,它会转义它后面的字符,序列只是没有任何特殊含义。
    • ...唯一需要在编码机制中转义的字符是编码机制结构本身中使用的特殊字符(对于 JSON 将是 ", {,},[,],等)...所有其他字符都是有效负载,应被视为...
    • @HiroProtagonist — PHP 的 json_encode 函数的开发者不同意。
    • PHP 的开发人员很长时间认为拥有magic_quotes 是一件好事;他们显然仍然这样做,在 json_encode 的狭义背景下,因为这正是这就是:魔术引号。
    • @lanzz — 添加一个永远不会改变数据含义的转义符(在 JSON 的上下文中)与添加一个转义符而不考虑数据的处理方式之间存在巨大差异.
    猜你喜欢
    • 2012-04-29
    • 2010-12-07
    • 2012-05-06
    • 1970-01-01
    • 2015-11-16
    相关资源
    最近更新 更多