다른 웹 페이지 (다른 사이트)에서 가져온 텍스트의 유니 코드 문자를 처리하는 데 문제가 있습니다. BeautifulSoup을 사용하고 있습니다.
문제는 오류가 항상 재현 가능한 것은 아니라는 것입니다. 때로는 일부 페이지에서 작동하며 때로는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)
일부 페이지 (또는 일부 사이트의 페이지)가 인코딩 될 수 있고 다른 페이지는 인코딩되지 않을 수 있기 때문입니다. 모든 사이트는 영국을 기반으로하며 영국 소비를위한 데이터를 제공하므로 영어 이외의 다른 언어로 작성된 텍스트 처리와 관련한 문제는 없습니다.
누구 든지이 문제를 일관되게 해결할 수 있도록이 문제를 해결하는 방법에 대한 아이디어가 있습니까?
import os; import locale; os.environ["PYTHONIOENCODING"] = "utf-8"; myLocale=locale.setlocale(category=locale.LC_ALL, locale="en_GB.UTF-8"); ... print(myText.encode('utf-8', errors='ignore'))
.
$ export PYTHONIOENCODING=utf8