🖥️ IT, 컴퓨터/🐍 Python

[Python] 유니코드 에러 해결하기 UnicodeEncodeError: 'cp949' codec can't encode character '\xa0' in position 33: illegal multibyte sequenceOutput is truncated.

김 홍시 2025. 4. 19.
반응형

 

문제상황

 

 

이런 오류가 나오는 상황

 

해결방법

 

 

🔧 해결 방법

다음 중 하나의 방법으로 문제를 해결하실 수 있습니다:


1. 인코딩을 utf-8-sig로 변경하기 (추천)

df.to_csv(r"C:\Users\jiyun\OneDrive\바탕 화면\LS_빅데이터스쿨_실습셋\실습_3\결과.csv", encoding='utf-8-sig', index=False)
  • 엑셀에서도 문제 없이 열립니다.
  • cp949보다 문자 호환 범위가 넓습니다.

2. 특수문자 제거 후 저장하기

# 모든 문자열 열에서 비분리 공백(\xa0) 제거
df = df.applymap(lambda x: x.replace('\xa0', ' ') if isinstance(x, str) else x)

# cp949로 저장
df.to_csv(r"C:\Users\jiyun\OneDrive\바탕 화면\LS_빅데이터스쿨_실습셋\실습_3\결과.csv", encoding='cp949', index=False)
  • \xa0 → 일반 공백으로 바꾸어 cp949로 저장 가능하게 합니다.

3. 문제 발생 위치 파악 후 제거

# \xa0이 포함된 행 찾기
mask = df.apply(lambda col: col.astype(str).str.contains('\xa0', na=False)).any(axis=1)
problem_rows = df[mask]

print(problem_rows)
  • 어떤 데이터가 문제인지 확인 후, 개별 수정 가능.

 

반응형

댓글