我使用BeautifulSoup4获取网页内容(编码为utf-8)。当我尝试打印带有重音符号的单词并且python引发以下错误时会出现问题:
"UnicodeEncodeError: 'ascii' codec can't encode characters in position 3-4: ordinal not in range(128)"
如果我使用.encode('utf-8')我不会再出现错误,但也没有正确写出这个词(它给了我一些东西!@%带有重音的字符)。
是否有一个简单的使用任何函数,让我有机会正确地打印单词的所有重音?
代码:
def foo(soup):
children = soup.find('div', {'id': 'test'}).find_all('p')
for child in children:
print child.name, child.string
return '---'
child.string
答案 0 :(得分:2)
如果要进行测试,请将其放在文件的顶部
# -*- coding: utf-8 -*-
这是尝试修复错误。
print child.name, child.string.decode('utf-8')
基本上你应该使用decode而不是encode。