본문 바로가기
Programming/오류노트

[파이썬] "UnicodeDecodeError: 'cp949' codec can't decode byte 0xe2 in position 6987

by 도낙원 2018. 7. 18.
반응형


  발생한 오류


요즘에 파일을 읽고 쓰는 코딩을 많이 짜고 있습니다. 저번에는 자바로 엑셀 파일을 오늘은 파이썬으로 txt 파일을 읽는 것을 했습니다. 그러다 발생한 오류입니다. 


인코딩 관련해서 조금만 찾아보면 손 쉽게 알아 볼 수 있는 오류 같습니다. 'cp949' 는 인코딩하는 방법 중 하나입니다. 보통 메모장에서 ANSI로 저장하게 되면 이 CP949 로 저장되게 되며 'UTF-8' / 'UTF-16' / 'EUC-KR' 등 많은 방법이 있으며 'UTF-8'을 많이 사용하죠 
 
아래를 보면 이렇게 실행시키게 되면 오류가 발생합니다. 



코드에는 문제가 없어 보이고 cp949는 인코딩에 관련된 내용이기 때문에 저장된 파일을 확인해보니 UTF-8로 저장이 되어 있습니다.



난 정상적으로 UTF-8로 저장했는데 왜 안되는지 의아했습니다. 알고보니 파이썬3 부터는 ANSI 기준으로 작성된 파일만 정상적으로 읽어 올 수 있으며 UTF-8로 작성된 파일은 그냥 위에 코드로 읽으면 못 읽어 온다고 합니다.


f = open(path, 'r')    --->    f = open(path, 'r', encoding='UTF-8') 


파일을 열 때 인코딩을 해주면 간단하게 문제가 해결 됩니다. 또 다른 방법으로는 UTF-8로 저장된 텍스트 파일을 전부 ANSI로 다시 저장해주면 됩니다. 그런데 저는 이미 100여개 되는 파일을 모두 바꿀 수 없기에 .... 코드를 바꿔주었습니다.



그럼 오늘도 즐거운 코딩하세요






반응형
사업자 정보 표시
난길샵 | 박현숙 | 경상북도 성주군 월항면 수죽길 98길 | 사업자 등록번호 : 256-07-01668 | TEL : 010-9909-8420 | Mail : skr04@naver.com | 통신판매신고번호 : 제2020-경북성주-52호 | 사이버몰의 이용약관 바로가기

댓글