본문 바로가기
ETC/에러 모음

UnicodeDecodeError: 'cp949' codec can't decode byte 0xec in position : illegal multibyte sequence

by Guardy 2020. 12. 16.
728x90

cp949 byte 0xec 0xe2 byte ox
cp949' codec can't decode byte 0xec in position : illegal multibyte sequence
UnicodeDecodeError
illegal multibyte sequence

다음과 같은 에러가 날때 해결법입니다.

이 오류는 주로 파이썬에서 파일을 open할때 생기는 오류입니다. 'cp949'의 경우 인코딩 방법 중 하나로 다른 인코딩으로는 'UTF-8', 'UTF-16', 'EUC-KR'등이 있습니다.

메모장에서 인코딩을 지정하여 저장할 수 있다.

코드 상의 문제가 아닌 파일 인코딩 문제입니다.

즉 파일을 저장할때 A인코딩으로 저장하였는데 open 함수의 default가 cp949기 때문에 오류가 발생하는 것입니다.
해결 방법은 간단합니다. 바로 open 함수의 매개변수에 encoding을 지정해주면 됩니다.

f = open("test.txt", 'r')

다음과 같은 파일을 여는 함수가 있을 때 인코딩 매개변수를 다음과 같이 추가해줍니다.

f = open("test.txt", 'r', encoding='UTF-8') 

해당에러는 UTF-8로 지정해줬더니 바로 사라졌습니다.

저는 django project를 진행하면서 frontend를 장고가 가져올때 다음과 같은 에러가 떠서 encoding을 지정해주었더니 정상적으로 프론트단을 가져오는 것을 확인할 수 있었습니다.

글이 도움이 되셨다면 공감버튼 부탁드립니다. 감사합니다.

 

728x90