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

时间:2011-07-19 03:56:26

标签: html django django-templates html-entities

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

我目前正在将此html作为字符串存储在我的数据库中,因此当我在模板中显示这些变量时,特殊字符会像上面那样显示。我已尝试使用{{variable | safe}}取消字符,但这不起作用。

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

1 个答案:

答案 0 :(得分:1)

您在寻找的是: http://www.crummy.com/software/BeautifulSoup/documentation.html#Entity转化

您需要使用convertEntities参数并将其编码为unicode。

最后一行应该是

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

再次显示

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