我目前正在使用Beautiful Soup来解析HTML文件并调用get_text(),但似乎我留下了很多\xa0 Unicode表示空格。在python2.7中是否有一种有效的方法将它们全部删除,并将它们更改为空格?我想更普遍的问题应该是,有没有办法移除Unicode格式?

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

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


当前回答

我在这里结束,而谷歌的问题与不可打印的字符。我使用MySQL UTF-8 general_ci和处理波兰语言。对于有问题的字符串,我必须进行如下处理:

text=text.replace('\xc2\xa0', ' ')

这只是一个快速的解决方案,你可能应该尝试一些正确的编码设置。

其他回答

你可以试试string.strip() 这对我很管用!:)

尝试在行尾使用.strip() Line.strip()很适合我

试试这个:

string.replace('\\xa0', ' ')

0xA0 (Unicode)是UTF-8中的0xC2A0. .encode('utf8')只会取你的Unicode 0xA0并替换为UTF-8的0xC2A0。因此出现了0xc2…编码不是替代,正如您现在可能已经意识到的那样。

Python像识别空格字符一样识别它,所以你可以不带参数分割它,用一个普通的空格来连接:

line = ' '.join(line.split())