카카오톡 엑셀 한글 깨짐, CP949와 UTF-8 차이와 원본 파일에서 다시 저장하는 해결법

2026-10-17 · 테크 · 읽는데 6분

카카오톡 엑셀 한글 깨짐, CP949와 UTF-8 차이와 원본 파일에서 다시 저장하는 해결법

카카오톡으로 받은 엑셀 파일의 한글이 물음표나 알 수 없는 기호로 바뀌어 보이는 건 파일이 손상된 게 아니라 저장할 때 쓴 문자 인코딩과 읽을 때 기대하는 인코딩이 서로 달라서 생기는 현상입니다. 윈도우 엑셀의 기본 CSV 저장 방식은 한국어 로캘에서 CP949를 쓰는데, 웹 서버나 데이터베이스, 리눅스 기반 프로그램은 UTF-8을 기본값으로 기대하기 때문에 같은 글자라도 바이트 값이 어긋나면서 깨져 보입니다. 이미 깨진 파일은 원본 문자 정보가 사라진 경우가 많아 복구가 어렵고, 원본 엑셀 파일에서 인코딩을 다시 지정해 저장하는 쪽이 확실합니다.

카카오톡 엑셀 깨짐, 왜 CP949와 UTF-8 차이에서 생길까

엑셀에서 파일 형식을 그냥 'CSV(쉼표로 분리)'로 저장하면 실제로는 시스템 로캘의 ANSI 코드페이지로 저장됩니다. 한국어 윈도우에서 이 코드페이지는 CP949이고, 한글 한 글자를 정해진 2바이트 값으로 매핑합니다. 반면 웹 서버, 데이터베이스, 리눅스나 맥의 프로그램은 전 세계 문자를 하나의 체계로 표현하는 UTF-8을 기본값으로 기대합니다.

UTF-8을 기대하는 프로그램이 CP949 바이트를 만나면 정의되지 않은 바이트 조합으로 해석해서 물음표나 깨진 기호로 대체합니다. 반대 방향도 마찬가지여서, UTF-8로 저장한 CSV를 윈도우 엑셀에서 더블클릭으로 곧바로 열면 파일 앞에 BOM 표식이 없는 한 엑셀이 시스템 기본 인코딩(CP949)으로 오인해서 이번에는 엑셀 쪽에서 한글이 깨져 보입니다.

숫자나 영문만 있는 열은 멀쩡한데 한글이 들어간 열만 깨진다면 파일 손상이 아니라 인코딩 문제로 보면 됩니다. 카카오톡으로 주고받는 과정 자체가 파일을 변형하는 건 아니므로, 원인은 보낸 사람이 어떤 형식으로 저장했는지에 있습니다.

저장 방식에 따라 결과가 갈리는 지점

엑셀의 파일 형식 선택지 두 가지는 이름은 비슷해도 인코딩 처리가 다릅니다. 아래 표는 두 옵션의 차이를 정리한 것입니다.

저장 방식에 따라 결과가 갈리는 지점
저장 방식에 따라 결과가 갈리는 지점
항목 CSV(쉼표로 분리) CSV UTF-8(쉼표로 분리)
실제 인코딩 CP949(ANSI) UTF-8
BOM 포함 여부 미포함 포함
지원 버전 전 버전 엑셀 2016 이후
재열기 시 한글 정상 정상(BOM 인식)

'CSV UTF-8(쉼표로 분리)' 옵션은 엑셀 2016 이후 버전에 포함되어 있고, 텍스트를 UTF-8로 인코딩하면서 파일 맨 앞에 BOM(Byte Order Mark)이라는 표식을 함께 기록합니다. 이 BOM 덕분에 나중에 같은 파일을 엑셀에서 다시 열어도 UTF-8임을 자동으로 인식해서 한글이 깨지지 않습니다.

엑셀에서 CSV UTF-8로 다시 저장하는 순서

원본 엑셀 파일이 남아 있다면 이 방법이 가장 간단합니다.

엑셀에서 CSV UTF-8로 다시 저장하는 순서
엑셀에서 CSV UTF-8로 다시 저장하는 순서
  1. 원본 엑셀 파일을 연 뒤 파일 > 다른 이름으로 저장을 실행합니다.
  2. 파일 형식 목록에서 'CSV UTF-8(쉼표로 분리)'를 선택합니다. 'CSV(쉼표로 분리)'가 아닙니다.
  3. 파일 이름을 지정하고 저장합니다.
  4. 저장된 파일을 웹 서버나 데이터베이스, 다른 프로그램에서 다시 열어 한글이 정상 표시되는지 확인합니다.

이미 그냥 CSV로 저장해서 한글이 깨진 상태라면 메모장으로 그 파일을 열어 다른 이름으로 저장 대화상자를 띄운 뒤 하단의 인코딩 항목을 UTF-8로 바꿔 다시 저장하는 방법도 있습니다. 다만 메모장에서 열었을 때 이미 물음표나 깨진 기호로 보인다면 원본 문자 정보가 사라진 것이므로 복구할 수 없고, 반드시 엑셀 원본 파일에서 다시 저장해야 합니다.

카카오톡으로 받은 파일을 바로 열 때 생기는 함정

카카오톡 PC 버전에서 파일을 받아 더블클릭으로 열면 연결된 프로그램이 엑셀이든 뷰어든, 파일의 인코딩을 자동으로 판별하지 못하고 시스템 기본값으로 여는 경우가 있습니다. 이때 UTF-8로 저장된 파일이라도 BOM이 없으면 엑셀이 CP949로 오인해서 깨져 보일 수 있습니다.

받은 파일이 깨져 보인다면 파일 자체를 의심하기 전에 보낸 사람에게 원본 엑셀 파일(.xlsx)을 다시 받는 쪽이 빠릅니다. CSV는 한 번 깨지면 원문 복원이 안 되는 경우가 많아서, 애초에 xlsx 원본을 주고받고 필요할 때만 각자 환경에 맞게 CSV로 변환하는 편이 안전합니다.

인코딩과 구분자를 함께 지정하는 방법

엑셀 파일을 업로드해서 인코딩(UTF-8 등)과 구분자를 선택하면 한글이 깨지지 않는 CSV 파일을 바로 만들어 다운로드할 수 있는 무료 변환 도구도 있습니다. 회원 가입이 필요 없는 경우가 많고, 원본 엑셀 파일을 그대로 올려 UTF-8 CSV로 변환하는 방식입니다.

다만 이런 도구를 쓸 때는 업로드하는 파일에 개인정보나 민감한 데이터가 들어 있지 않은지 먼저 확인해야 합니다. 회사 내부 자료라면 외부 변환 서비스보다 엑셀의 'CSV UTF-8' 저장 기능을 쓰는 편이 안전합니다.

Q. 카카오톡으로 받은 파일이 깨졌는데 보낸 사람은 정상이라고 합니다

보낸 사람 환경에서는 CP949로 저장된 파일이 정상으로 보일 수 있습니다. 받는 쪽 프로그램이 UTF-8을 기대하면 깨져 보이므로, 보낸 사람에게 'CSV UTF-8(쉼표로 분리)'로 다시 저장해 달라고 요청하거나 xlsx 원본을 받는 것이 해결책입니다.

Q. 이미 깨진 CSV 파일을 되살릴 수 있나요?

메모장에서 열었을 때 이미 물음표나 깨진 기호로 보인다면 원본 문자 정보가 사라진 것이므로 복구할 수 없습니다. 엑셀 원본 파일이 남아 있다면 그 파일에서 인코딩을 다시 지정해 새로 저장해야 합니다.

Q. 엑셀 2016 이전 버전을 쓰는데 방법이 없나요?

'CSV UTF-8' 옵션이 없으므로 메모장 등 텍스트 편집기로 파일을 연 뒤 다른 이름으로 저장에서 인코딩을 UTF-8로 지정하는 방법을 씁니다. 이때 BOM 포함 여부를 선택할 수 있는 편집기를 쓰면 엑셀에서 다시 열 때도 깨지지 않습니다.

Q. 구분자(쉼표/탭)도 깨짐과 관련이 있나요?

구분자 자체는 문자 인코딩과 별개 문제입니다. 다만 일부 국가 로캘에서는 목록 구분자가 쉼표가 아니라 세미콜론으로 설정되어 열이 한 칸으로 합쳐져 보일 수 있으니, 인코딩을 먼저 맞춘 뒤 열 구분이 이상하면 구분자 설정을 확인해야 합니다.