본문 바로가기
컴퓨터 COMPUTER

[Python] UnicodeDecodeError: 'cp949' codec can't decode byte 0x80 in position 2923: illegal multibyte sequence

by 매실이 maesiri 2020. 3. 5.

아래와 같은 오류가 날 때가 있다. Encoding 문제로 화가 나서 정리해둔다.

 

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

 

우선 오류가 났던 코드 틀은 아래와 같이 간단하다. csv 파일을 읽기 시작하면서 바로 에러가 난 경우도 있고, 잘 읽다가 중간에 에러가 나기도 했다.

 

구글링해서 찾은 방법으로는 'r' 를 'rt' 로 바꾸어 텍스트로만 읽게 하거나, encoding = 'utf-8' 혹은 encoding = 'utf-16' 파라미터를 추가하는 것이 있었으나..

나에게는 먹히지 않았음.. 

 

import csv
...
# 기존 코드
inputFile = open('Delete_Repeated3.csv','r') 
rdr = csv.reader(inputFile)

# 에러 지점
for line in rdr: 
    ...
    

 

 

나같은 경우에는 두가지 방법으로 에러를 피했는데, 하나는 open 함수에 간단히 encoding='ISO-8859-1' 라고 파라미터를 추가해준 것이고, 하나는 errors = 'ignore' 라는 파라미터를 추가해준 것이다. ignore 를 할 경우 몇개의 byte 가 무시될 뿐, 텍스트가 달라지지 않았다. 

 

import csv
...
# 고친 코드
inputFile = open('Delete_Repeated3.csv','r', encoding = 'ISO-8859-1')

# 혹은 이렇게 고친 코드
inputFile = open('Delete_Repeated3.csv','r', errors = 'ignore')
rdr = csv.reader(inputFile)

# 에러 지점
for line in rdr: 
    ...
    

 

반응형