首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Python中从字符串中删除\xa0?

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

Stack Overflow用户
提问于 2012-06-12 17:12:33
回答 13查看 346.7K关注 0票数 308

我目前正在使用Beautiful Soup来解析一个超文本标记语言文件并调用get_text(),但是似乎我被留下了很多表示空格的\xA0Unicode。在Python2.7中,有没有一种有效的方法将它们全部移除,并将它们改为空格?我想更普遍的问题应该是,有没有一种方法可以删除Unicode格式?

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

编辑:这个问题似乎可以通过str.replace(u'\xa0', ' ').encode('utf-8')来解决,但是如果只是在不使用replace()的情况下执行.encode('utf-8'),似乎会导致它输出更奇怪的字符,例如\xc2。有人能解释这个吗?

EN

回答 13

Stack Overflow用户

发布于 2012-07-20 01:42:45

\xa0实际上是Latin1 (ISO8859-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

票数 349
EN

Stack Overflow用户

发布于 2016-01-08 12:24:55

Python的unicodedata库中有很多有用的东西。其中之一是.normalize()函数。

尝试:

代码语言:javascript
复制
new_str = unicodedata.normalize("NFKD", unicode_str)

如果您没有得到您想要的结果,请使用上面链接中列出的任何其他方法替换NFKD。

票数 282
EN

Stack Overflow用户

发布于 2015-07-22 05:50:37

试着在行尾使用.strip() line.strip()对我来说效果很好

票数 26
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10993612

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档