【问题标题】:character escaping: from Python string literal to JSON and then to HTML字符转义:从 Python 字符串文字到 JSON,然后到 HTML
【发布时间】:2012-04-17 19:29:23
【问题描述】:

我设计了一个 JSON 对象,用作将 AJAX 响应发送回我的 Web 应用程序客户端的格式。我正在通过将html代码放入其中来增强它。但是由于我缺乏关于该主题的准确知识和经验,所需的字符转义让我感到相当不舒服。

我使用 Python/Django 作为我的服务器端语言/框架。为了从 Python 字符串文字转换为供浏览器使用的适当 HTML 节点,以我对字符转义的模糊了解,我想我需要两个阶段的字符转义:

  1. 将 Python 字符串文字序列化为 JSON,并根据 JSON 要求对字符进行转义。
  2. 在客户端收到 JSON 对象后,按照 HTML 的要求对字符进行转义。请注意,我使用的是 jQuery。

我对以上两个阶段的看法是否正确?如果是这样,我该如何实现它们?

如果你用一个例子更容易解释的话。这是一个:

s = '<a href="http://www.foo.com/bar/">"Click Here&Here"</a>'

其中 s 是 Python 字符串文字。我想看到它变成

<a href="http://www.foo.com/bar/">"Click Here&amp;Here"</a>

在 HTML 中。

【问题讨论】:

    标签: javascript python html json escaping


    【解决方案1】:

    您需要在客户端转义它吗?在将其编码为 JSON 之前,您可以在 Python 中执行此操作:

    from cgi import escape
    from json import dumps
    
    ajax_response = dumps(escape('<a href="http://www.example.com/path/location'
                                 '?query=string&more=this#anchor">'
                                 'FooBar & Friends</a>'))
    

    【讨论】:

    • 这个解决方案看起来很有希望。让我试试看。会让你知道。谢谢。
    猜你喜欢
    • 2014-04-07
    • 2012-08-04
    • 2020-02-15
    • 2013-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-20
    • 1970-01-01
    相关资源
    最近更新 更多