2026/11/14

오늘의 이야기

Python으로 파일 인코딩(Encoding) 변환하기


인코딩 설명 하기



 


파일을 다루다 보면 UTF-8, EUC-KR, CP949 등의 인코딩 형식 때문에 한글이 깨지는 경우가 자주 발생한다. 이번 글에서는 Python으로 텍스트 파일의 인코딩을 변환하는 방법을 알아본다.


UTF-8 → EUC-KR 변환


with open("input.txt", "r", encoding="utf-8") as f:
text = f.read()

with open("output.txt", "w", encoding="euc-kr") as f:
f.write(text)

UTF-8 형식으로 저장된 파일을 읽은 후 EUC-KR 형식으로 다시 저장한다.


EUC-KR → UTF-8 변환


with open("input.txt", "r", encoding="euc-kr") as f:
text = f.read()

with open("output.txt", "w", encoding="utf-8") as f:
f.write(text)

국내 레거시 시스템에서 사용하는 EUC-KR 파일을 UTF-8로 변환할 때 유용하다.


바이너리(Binary) 방식으로 변환하기


with open("input.txt", "rb") as f:
data = f.read()

text = data.decode("cp949") # 원본 인코딩
new_data = text.encode("utf-8")

with open("output.txt", "wb") as f:
f.write(new_data)

파일을 바이트 단위로 읽고 직접 decode/encode를 수행하는 방법이다. 원본 인코딩을 정확히 알고 있을 때 사용하면 된다.


파일 인코딩 자동 확인하기


인코딩을 모를 경우 chardet 라이브러리를 사용해 추정할 수 있다.


import chardet

with open("input.txt", "rb") as f:
result = chardet.detect(f.read())

print(result)

실행 결과 예시


{
'encoding': 'EUC-KR',
'confidence': 0.99
}

chardet 설치


pip install chardet

마무리


Python에서는 open() 함수의 encoding 옵션만으로도 간단하게 인코딩 변환을 수행할 수 있다. 원본 인코딩을 모르는 경우에는 chardet를 활용하여 인코딩을 먼저 확인한 후 변환 작업을 진행하는 것이 안전하다.





댓글 없음:

댓글 쓰기

오늘의 이야기

Python으로 파일 인코딩(Encoding) 변환하기 인코딩 설명 하기   파일을 다루다 보면 UTF-8, EUC-KR, CP949 등의 인코딩 형식 때문에 한글이 깨지는 경우가 자주 발생한다....