본문 바로가기
파이썬

파이썬 Python 유니 코드 인코딩 오류

by º기록 2020. 11. 19.
반응형

Amazon XML 파일을 읽고 구문 분석하는 중이며 XML 파일에 '가 표시되는 동안 인쇄하려고하면 다음 오류가 발생합니다.

'ascii' codec can't encode character u'\u2019' in position 16: ordinal not in range(128) 

지금까지 온라인에서 읽은 내용에서 오류는 XML 파일이 UTF-8로되어 있지만 Python이 ASCII 인코딩 문자로 처리하기를 원한다는 사실에서 발생합니다. 오류를 없애고 프로그램이 읽는대로 XML을 인쇄하도록하는 간단한 방법이 있습니까?

 

해결 방법

 

아마도 문제는 당신이 그것을 잘 파싱했고 이제 당신은 XML의 내용을 인쇄하려고하는데 외국 유니 코드 문자가 있기 때문에 인쇄 할 수 없다는 것입니다. 먼저 유니 코드 문자열을 ascii로 인코딩하십시오.

unicodeData.encode('ascii', 'ignore')

'ignore'부분은 해당 문자를 건너 뛰도록 지시합니다. 파이썬 문서에서 :

>>> u = unichr(40960) + u'abcd' + unichr(1972)
>>> u.encode('utf-8')
'\xea\x80\x80abcd\xde\xb4'
>>> u.encode('ascii')
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
UnicodeEncodeError: 'ascii' codec can't encode character '\ua000' in position 0: ordinal not in range(128)
>>> u.encode('ascii', 'ignore')
'abcd'
>>> u.encode('ascii', 'replace')
'?abcd?'
>>> u.encode('ascii', 'xmlcharrefreplace')
'&#40960;abcd&#1972;'


 

참조 페이지 https://stackoverflow.com/questions/3224268

 

 

반응형

댓글