2011-07-19 56 views
0

我正在使用Beautiful Soup解析一些HTML,偶爾它返回的HTML包含一些特殊字符,如—(long dash)和®(註冊符號)。在Django中存儲和顯示特殊字符的正確方法是什麼?

我目前正在將這個html作爲一個字符串存儲在我的數據庫中,因此,當我在我的模板中顯示這些變量時,特殊字符出現在上面。我已經嘗試使用{{variable | safe}}來消除這些字符,但那不起作用。

在Django中存儲和顯示這些類型的特殊字符的正確方法是什麼?

回答

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') 
+0

感謝,原來我只是加入'| safe'過濾器放錯了地方。將它添加到正確的變量中,如預期的那樣轉義字符串。 –

相關問題