【问题标题】:What's the Right Way to Store and Display Special Characters in Django?在 Django 中存储和显示特殊字符的正确方法是什么?
【发布时间】:2011-07-19 03:56:25
【问题描述】:

我正在使用 Beautiful Soup 解析一些 HTML,偶尔它返回的 HTML 包含一些特殊字符,例如 —(长破折号)和 ®(注册符号)。

我目前将此 html 作为字符串存储在我的数据库中,因此当我在模板中显示这些变量时,特殊字符会像上面那样显示。我尝试使用 {{ variable|safe }} 对字符进行转义,但没有成功。

在 Django 中存储和显示这些类型的特殊字符的正确方法是什么?

【问题讨论】:

    标签: html django django-templates html-entities


    【解决方案1】:

    您正在寻找的内容在这里: http://www.crummy.com/software/BeautifulSoup/documentation.html#Entity转换

    您需要使用 convertEntities 参数并将它们编码为 un​​icode。

    最后一行应该是这样的

    decodedString=unicode(BeautifulStoneSoup(encodedString,convertEntities=BeautifulStoneSoup.HTML_ENTITIES)
    

    再次显示它们

    "Your string with a long dash in it".encode('ascii', 'xmlcharrefreplace')
    

    【讨论】:

    • 谢谢,原来我只是在错误的地方添加了|safe 过滤器。将其添加到正确的变量中,按预期取消了字符串的转义。
    猜你喜欢
    • 2012-04-24
    • 1970-01-01
    • 1970-01-01
    • 2016-12-21
    • 2015-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多