[ 작업 환경 ]
Python 3.8
[ 문제 상황 ]
UnicodeEncodeError: 'cp949' codec can't encode character '\xa0' in position 17678: illegal multibyte sequence
[ 문제 원인 ]
write하려는 데이터와 write target 파일의 인코딩 형식이 맞지 않아 발생합니다.
[ 해결 방법 ]
# 에러나는 소스
with open('test.txt', 'a') as f:
f.write('test data line')
# 해결한 소스
with open('test.txt', 'a', -1, 'utf-8') as f:
f.write('test data line')
버퍼 -1 옵션과 인코딩 'utf-8' 옵션을 추가해주면 에러 없이 정상진행됩니다.
- 파일 상단에 아래 문구를 넣어주어도 해결되지 않으니 참고바랍니다.
# -*- encoding: utf-8 -*-
파일 자체 내용을 utf-8로 읽게 해주는 것 뿐, 외부에서 가져온 텍스트까지 utf-8로 변환하여 활용하는 것이 아니기 때문입니다.