我有一个奇怪的问题,从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泛型
因为我不我不知道错误发生在哪个层面,我想问问有没有人可以帮助我。提前谢谢了。