2011-07-19 6 views
0

私はBeautiful Soupを使ってHTMLを解析していますが、返すHTMLには—(ロングダッシュ)や®(登録記号)などの特殊文字が含まれることがあります。Djangoに特殊文字を保存して表示する正しい方法は何ですか?

私は現在このHTMLを文字列としてそのままデータベースに格納しています。その結果、テンプレートにこれらの変数を表示すると、上記のように特殊文字が表示されます。私は{{variable | safe}}を使って文字をアンエスケープしようとしましたが、うまくいきませんでした。

これらの種類の特殊文字をDjangoに保存して表示する正しい方法は何ですか?

答えて

1

あなたが探していることはここにある:あなたがconvertEntitiesパラメータを使用してUnicodeとしてそれらをコードすることをお勧めします http://www.crummy.com/software/BeautifulSoup/documentation.html#Entity変換

。間違った場所にsafe`フィルタ|

最後の行が再び

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

おかげでそれらを表示するには

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

のようなものである必要があり、それは私がちょうど '追加されたが判明しました。それを正しい変数に追加して、文字列をエスケープして期待どおりにします。 –

関連する問題