我在从 HTML 转换特殊字符时遇到了一个奇怪的问题。我有一个 Django 项目,其中文本以 HTML 编码存储在 MySQL 数据库中。这是必要的,因为我不想丢失任何文本格式。
在初步步骤中,我必须对文本进行操作,例如计算位置,因此我需要先将其转换并从所有 HTML-Tags 中清除它。这是由 BeautifulSoup 完成的:
convertedText = str(BeautifulSoup(text.text, convertEntities=BeautifulSoup.HTML_ENTITIES))
convertedText = ''.join(BeautifulSoup(convertedText).findAll(text=True))
通过在我的 Django-default 测试服务器上工作一切正常,但是当我在生产服务器上运行它时,在转换特殊字符时会出现奇怪的行为。
一个例子:
测试服务器
MySQL-Query 给了我:<p>bassverstärker</p>
正确转换为:bassverstärker
生产服务器
MySQL-Query 给了我:<p>bassverstärker</p>
这被错误地转换为:bassverst\ucc44rker
不知何故,ä
转换为\ucc44
,这导致错误的字符。
我的配置:
测试服务器:
- Django 内置解决方案 (
python manage.py runserver
) - 美丽汤 3.2.1
- Python 2.6.5
- Ubuntu 2.6.32-43-通用
生产服务器:
- 切诺基 1.2.101
- 美丽汤 3.2.1
- 蟒蛇2.7.3
- Ubuntu 3.2.0-32-通用
因为我不知道错误发生在哪个级别,所以我想问一下是否有人可以帮助我解决这个问题。提前谢谢了。