我有一個奇怪的問題,從HTML轉換特殊字符。我有一個Django項目,其中文本以HTML編碼存儲在MySQL數據庫中。這是必要的,因爲我不想丟失任何格式的文本。BeautifulSoup和轉換HTML實體的奇怪行爲
在一個初步的步驟中,我必須在計算位置等文本上進行操作,所以我需要先將其轉換並從所有HTML標籤中清除它。這是通過BeautifulSoup完成:
convertedText = str(BeautifulSoup(text.text, convertEntities=BeautifulSoup.HTML_ENTITIES))
convertedText = ''.join(BeautifulSoup(convertedText).findAll(text=True))
通過對我的Django默認的測試服務器一切工作正常,但我我的生產服務器上運行有轉換的特殊字符時,很奇怪的行爲。
一個例子:
測試服務器
的MySQL查詢給我:<p>bassverstärker</p>
被正確轉換爲:bassverstärker
生產服務器
我SQL查詢給我:<p>bassverstärker</p>
這是錯誤地轉換爲:bassverst\ucc44rker
不知何故,ä
轉化爲\ucc44
,這導致錯誤的字符。
我的配置:
測試服務器:
- 的Django內置的解決方案(
python manage.py runserver
) - BeautifulSoup 3.2.1
- 的Python 2.6.5
- Ubuntu的2.6。 32-43-generic
生產服務器:
- 切諾基1.2.101
- BeautifulSoup 3.2.1
- 蟒蛇2.7.3
- Ubuntu的3.2.0-32泛型
因爲我不我不知道錯誤發生在哪個層面,我想問問有沒有人可以幫助我。提前謝謝了。