반응형
발생한 오류
요즘에 파일을 읽고 쓰는 코딩을 많이 짜고 있습니다. 저번에는 자바로 엑셀 파일을 오늘은 파이썬으로 txt 파일을 읽는 것을 했습니다. 그러다 발생한 오류입니다.
"UnicodeDecodeError: 'cp949' codec can't decode byte 0xe2 in position 6987: illegal multibyte sequence"
인코딩 관련해서 조금만 찾아보면 손 쉽게 알아 볼 수 있는 오류 같습니다. '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호 | 사이버몰의 이용약관 바로가기
'Programming > 오류노트' 카테고리의 다른 글
[오라클] ORA-00979: not a GROUP BY expression (1) | 2018.05.17 |
---|---|
[오라클] ORA-00907: missing right parenthesis (0) | 2018.05.08 |
[SPRING] It's likely that neither a Result Type nor a Result Map was specified. (0) | 2018.04.26 |
[SPRING] expected at least 1 bean which qualifies as autowire candidate (2) | 2018.04.26 |
[mybatis] 부적합한 열 유형 (0) | 2018.04.25 |
댓글