【发布时间】:2015-09-22 20:42:11
【问题描述】:
我有这个代码片段(Python 2.7):
from bs4 import BeautifulSoup
content = ' foo bar';
soup = BeautifulSoup(content, 'html.parser')
w = soup.get_text()
此时w中有一个值为160的字节,但它的编码是ASCII。
如何将所有 \xa0 字节替换为另一个字符?
我试过了:
w = w.replace(chr(160), ' ')
w = w.replace('\xa0', ' ')
但我得到了错误:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xa0 in position 0: ordinal not in range(128)
为什么 BS 返回一个带有无效字符的ASCII 编码字符串?
有没有办法将w 转换为“latin1”编码的字符串?
【问题讨论】:
-
你也可以使用
'hèlłø'.encode('ascii', 'replace')
标签: python string character-encoding