我正在使用Beautiful Soup解析一些HTML,有时它返回的HTML包含一些特殊字符,例如—
(长划线)和®
(注册符号)。
我目前正在将此html作为字符串存储在我的数据库中,因此当我在模板中显示这些变量时,特殊字符会像上面那样显示。我已尝试使用{{variable | safe}}取消字符,但这不起作用。
在Django中存储和显示这些类型的特殊字符的正确方法是什么?
答案 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')