반응형
에러 발생 이유
대부분의 비 UTF 코덱은 유니코드 문자의 일부만 처리할 수 있으나,
텍스트를 바이트로 변활할 때 문자가 인코딩에 정의되어 있지 않다면,
인코딩 메서드나 함수의 errors 인수에 별도의
처리기를 지정하지 않는 한
UnicodeEncodeError 가 발생한다.
Traceback (most recent call last):
File "C:/Users/Desktop/practice.py", line 7, in <module>
print(city.encode('cp437'))
File "C:\Users\lib\encodings\cp437.py", line 12, in encode
return codecs.charmap_encode(input,errors,encoding_map)
UnicodeEncodeError: 'charmap' codec can't encode character '\xe3' in position 1: character maps to <undefined>
해결 방법
인코딩 메서드를 사용할 때, 에러 처리기를 사용하면 된다.
# ignore : 인코딩할 수 없는 문자를 그냥 건너뛰는 것
print(city.encode('cp437', errors='ignore'))
# replace : 인코딩할 수 없는 문자를 (?) 로 치환하는 것
print(city.encode('cp437', errors='replace'))
# xmlcharrefreplace : 인코딩할 수 없는 문자를 xml 개체로 치환
print(city.encode('cp437', errors='xmlcharrefreplace'))
# ignore
- 그냥 무시를 하기 때문에 많이 좋지 않은 방법이다
# replace
- 데이터가 손실되지만, 어떤 문제가 있음을 직접 눈으로 확인할 수 있다.
위 에러 해결 방법은
전문가를 위한 파이썬을 참고했다
반응형