8월, 2026의 게시물 표시

Python 오류 해결: Python 한글 깨짐 해결하기

이미지
 저도 처음에 PATH에서 막혔던 것처럼, Python 한글 문제에서도 비슷하게 한참을 헤맨 적이 있습니다. 분명 코드에는 멀쩡하게 한글을 입력했는데, 막상 실행하면 화면에 UnicodeDecodeError 가 뜨거나 알 수 없는 특수문자로 도배된 결과가 출력되어서 당황스러웠습니다. 파일을 새로 만들어도 보고 코드를 다시 써봐도 똑같길래 제 코드가 잘못된 줄 알았는데, 알고 보니 원인은 코드가 아니라 파일이 저장된 인코딩 방식과 실행 환경의 문자 설정이 서로 어긋나 있었던 것이었습니다. 이번 글에서는 그때 겪었던 경험을 바탕으로, VS Code에서 Python을 사용할 때 자주 마주치는 한글 깨짐 문제의 원인과 해결 방법을 정리해보겠습니다. 한글이 깨지는 근본 원인 인코딩이란 무엇인가 컴퓨터는 문자를 그대로 저장하는 것이 아니라 정해진 규칙에 따라 숫자로 변환해서 저장합니다. 이 변환 규칙을 인코딩이라고 부르는데, 대표적으로 영어권에서 주로 쓰이는 ASCII , 전 세계 문자를 대부분 표현할 수 있는 UTF-8 , 그리고 한글 윈도우에서 오랫동안 기본값으로 사용되어온 CP949(EUC-KR) 등이 있습니다. 비유하자면 인코딩은 마치 서로 다른 나라의 우편번호 체계와 같습니다. 같은 숫자라도 나라마다 가리키는 주소가 다르듯, 같은 바이트값이라도 어떤 인코딩 규칙으로 해석하느냐에 따라 전혀 다른 문자로 표시될 수 있습니다. 파일을 저장할 때 사용한 우편번호 체계와, 읽을 때 사용하는 우편번호 체계가 다르면 엉뚱한 주소, 즉 깨진 글자가 나타나는 것입니다. 한글 깨짐이 발생하는 대표적인 상황 파일을 읽거나 쓸 때 인코딩을 지정하지 않은 경우 콘솔(터미널) 자체의 문자 인코딩 설정이 다른 경우 CSV나 텍스트 파일을 다른 프로그램에서 받아왔을 때 인코딩이 다른 경우 소스 코드 파일 자체가 잘못된 인코딩으로 저장된 경우 운영체제 기본 인코딩이 UTF-8이 아닌 경우 파일 입출력에서 발생하는 한글 깨짐 해결하기 open() 함수에 인코딩...