我目前正在使用 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()
似乎导致它吐出更奇怪的字符,\ .谁能解释一下?
原文由 zhuyxn 发布,翻译遵循 CC BY-SA 4.0 许可协议
\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