반응형
앱을 시작했을 때 아래와 같은 오류가 발생하는 경우가 있습니다. 이것의 윈인은 파이썬 소스 내의 한글 때문입니다. 작업을 하다보면 주석이나 소스 내 텍스트에 한글이 들어갈 수 있습니다. 그렇기 때문에 해당 오류는 반드시 해결해야 할 문제입니다. 서버는 리눅스 우분트였기 때문에 다양한 인코딩 설정을 변경 했는데도 해결이 되지 않았습니다.
▼ 결국 파이썬 소스 파일이 UTF-8 이 아닌 ISO 로 인코딩이 된 것을 확인할 수 있었습니다. 해당 파일의 인코딩을 UTF-8 로 변환한 파일을 새로 만들고 기존 소스 파일을 지운다음 교체하는 것으로 해결을 보았습니다. 이제 그 과정을 보시겠습니다.
'utf-8' codec can't decode byte 0xbe in position 1636: invalid start byte
▼ 실행 파이썬 파일의 인코딩이 utf-8 아닐 수 있습니다. 확인해 보시고 아니라면 파일 포맷을 변경합니다. 파일의 인코딩을 확인하는 방법은 아래와 같습니다. 아래 명령어를 실행한 결과 인코딩 charset 이 ISO 인것을 알 수 있습니다.
file -i <파일명>
▼ 다시 UTF-8 로 변환한 파일을 새로 만들고 기존 파일을 지웁니다. 그리고 mv 명령을 이용해서 지운 파일 이름으로 변경합니다.
// UTF-8 로 변환한 파일 생성
iconv -f <현재_인코딩> -t utf-8 your_script.py -o your_script_utf8.py
rm app.py // 기존 파일 삭제
mv app_utf8.py app.py // 인코딩을 변경해서 만든 파일의 이름을 변경
▼ 이렇게 변경하고 실행한 결과는 다음과 같습니다. 제대로 실행된 것을 알 수 있습니다.
반응형