Error code 모음/4. Python errors

[Python Error] 'charmap' codec can't encode character '\xe3' in position 1: character maps to <undefined>

쟈누이 2020. 10. 31. 21:44
반응형

 

에러 발생 이유

대부분의 비 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 

- 데이터가 손실되지만, 어떤 문제가 있음을 직접 눈으로 확인할 수 있다.

 

 

위 에러 해결 방법은 

전문가를 위한 파이썬을 참고했다

반응형