UnicodeEncodeError: 'ascii' 编解码器无法对位置 20 中的字符 u'\xa0' 进行编码:序号不在 range(128)
我在处理从不同网页(在不同站点上)获取的文本中的Unicode字符时遇到问题。我正在使用BeautifulSoup。
问题是错误并不总是可重现的;它有时适用于某些页面,有时,它通过抛出.我已经尝试了我能想到的几乎所有东西,但我没有找到任何可以一致工作的东西,而不会抛出某种与Unicode相关的错误。UnicodeEncodeError
导致问题的代码部分之一如下所示:
agent_telno = agent.find('div', 'agent_contact_number')
agent_telno = '' if agent_telno is None else agent_telno.contents[0]
p.agent_info = str(agent_contact + ' ' + agent_telno).strip()
下面是在运行上述代码段时对某些字符串生成的堆栈跟踪:
Traceback (most recent call last):
File "foobar.py", line 792, in <module>
p.agent_info = str(agent_contact + ' ' + agent_telno).strip()
UnicodeEncodeError: 'ascii' codec can't encode character u'\xa0' in position 20: ordinal not in range(128)
我怀疑这是因为某些页面(或者更具体地说,来自某些站点的页面)可能被编码,而其他页面可能未编码。所有网站都位于英国,并提供供英国消费的数据 - 因此不存在与内部化或处理以英语以外的任何文本相关的问题。
有没有人对如何解决这个问题有任何想法,以便我可以始终如一地解决这个问题?