如何从 Python 中的字符串中删除 \\xa0?

新手上路,请多包涵

我目前正在使用 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 许可协议

阅读 1k
1 个回答

\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

原文由 samwize 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题