Python 美化组和转换HTML实体的奇怪行为
我在从HTML转换特殊字符时遇到了一个奇怪的问题。我有一个Django项目,其中文本存储在MySQL数据库中的HTML编码中。这是必要的,因为我不想丢失文本的任何格式 在一个初步的步骤中,我必须对文本进行操作,比如计算位置,所以我需要首先将其转换,并将其从所有HTML标记中清除。这是由BeautifulSoup完成的:Python 美化组和转换HTML实体的奇怪行为,python,django,character-encoding,beautifulsoup,cherokee,Python,Django,Character Encoding,Beautifulsoup,Cherokee,我在从HTML转换特殊字符时遇到了一个奇怪的问题。我有一个Django项目,其中文本存储在MySQL数据库中的HTML编码中。这是必要的,因为我不想丢失文本的任何格式 在一个初步的步骤中,我必须对文本进行操作,比如计算位置,所以我需要首先将其转换,并将其从所有HTML标记中清除。这是由BeautifulSoup完成的: convertedText = str(BeautifulSoup(text.text, convertEntities=BeautifulSoup.HTML_ENTITIES)
convertedText = str(BeautifulSoup(text.text, convertEntities=BeautifulSoup.HTML_ENTITIES))
convertedText = ''.join(BeautifulSoup(convertedText).findAll(text=True))
通过在Django默认测试服务器上工作,一切正常,但当我在生产服务器上运行它时,转换特殊字符时会出现奇怪的行为
例如:
测试服务器
MySQL查询给了我:bassverstä;克尔克尔
正确转换为:bassverstärker
生产服务器
MySQL查询给了我:bassverstä;克尔克尔
这被错误地转换为:BasVerst\ucc44rker
不知怎的,ä;转换为\ucc44,这将导致错误的字符
我的配置:
测试服务器:
Django内置解决方案python manage.py runserver
美化小组3.2.1
Python 2.6.5
Ubuntu 2.6.32-43-generic
生产服务器:
切诺基1.2.101
美化小组3.2.1
python 2.7.3
Ubuntu 3.2.0-32-generic
因为我不知道错误发生在哪个级别,我想问一下是否有人能帮我解决这个问题。非常感谢。我找到了解决这个问题的方法。我不知道BeautifulSoup有内置的getText方法。通过以下方式转换HTML时:
convertedText = BeautifulSoup(text.text, convertEntities=BeautifulSoup.HTML_ENTITIES).getText()
在两台服务器上都可以正常工作。尽管这是可行的,但了解在使用问题中的示例时两台服务器的行为为何不同将是一件有趣的事情
不过,多亏了大家。我找到了解决这个问题的方法。我不知道BeautifulSoup有内置的getText方法。通过以下方式转换HTML时:
convertedText = BeautifulSoup(text.text, convertEntities=BeautifulSoup.HTML_ENTITIES).getText()
在两台服务器上都可以正常工作。尽管这是可行的,但了解在使用问题中的示例时两台服务器的行为为何不同将是一件有趣的事情
然而,感谢大家