我目前正在使用Beautiful Soup来解析HTML文件并调用get_text(),但是似乎我留下了很多\xa0 Unicode表示空格。有没有一种有效的方法来删除Python 2.7中的所有元素,然后将它们更改为空格?我想更笼统的问题是,有没有办法删除Unicode格式?

我尝试使用:line = line.replace(u'\xa0',' '),如另一个线程所建议的那样,但是将\xa0更改为u,所以现在到处都是“u”。 ):

编辑:问题似乎可以通过str.replace(u'\xa0', ' ').encode('utf-8')解决,但是仅执行.encode('utf-8')而没有replace()似乎会使它吐出甚至更奇怪的字符,例如\xc2。谁能解释一下?

最佳答案

\xa0实际上是Latin1(ISO 8859-1),也是chr(160)中的不间断空格。您应该将其替换为空格。
string = string.replace(u'\xa0', u' ')
当.encode('utf-8')时,它将把unicode编码为utf-8,这意味着每个unicode可以由1到4个字节表示。在这种情况下,\xa0由2个字节\xc2\xa0表示。

阅读http://docs.python.org/howto/unicode.html

请注意:此答案从2012年开始,Python仍在继续,您现在应该可以使用unicodedata.normalize

09-25 19:51