압축 풀었더니 파일 이름이 깨질 때 (한글 깨짐 해결)
압축을 풀면 파일 이름이 외계어로 나오는 이유와 해결 순서를 반디집 공식 도움말 기준으로 정리했습니다. 받은 파일을 되살리는 코드페이지 설정과, 내가 보낼 때 안 깨지게 하는 압축 옵션까지 다룹니다.
받은 파일이 깨졌다면 반디집으로 열고 상단 Code page 버튼에서 Auto detect를 누르면 됩니다. 내가 보낼 파일이 깨지지 않게 하려면 환경 설정의 유니코드 파일명 옵션을 확인해야 합니다.
압축 파일을 받아서 풀었더니 파일 이름이 ?????.hwp나 °Ë»ç°á°ú.jpg 같은 외계어로 나오는 경우가 있습니다. 내용은 멀쩡한데 이름만 깨집니다. 파일을 잘못 받은 것도, 압축이 손상된 것도 아닙니다. ZIP 포맷이 만들어진 시기 때문에 생기는 문제입니다.
원인: ZIP은 유니코드보다 먼저 만들어졌습니다
반디집 공식 도움말의 설명이 원인을 정확히 짚습니다.
유니코드와 UTF-8은 1990년대가 지나서야 개발되었기 때문에, 1980년대에 개발된 ZIP 포맷은 당연히 UTF-8을 지원하지 않았습니다.
그래서 옛 방식의 ZIP은 파일 이름을 그 컴퓨터가 쓰는 나라별 문자 코드(코드페이지) 로 저장합니다. 한국 윈도우에서 압축한 파일은 한국어 코드페이지로, 일본 윈도우에서 압축한 파일은 일본어 코드페이지로 저장됩니다. 서로 다른 코드페이지를 쓰는 컴퓨터에서 열면 같은 숫자가 다른 글자로 해석되면서 이름이 깨집니다.
파일 내용은 그대로입니다. 깨지는 것은 이름뿐입니다.
받은 파일이 깨졌을 때 — 코드페이지 바꾸기
반디집으로 압축 파일을 더블클릭해서 열어봅니다(풀지 말고 열기만 합니다). 창 위쪽 도구 모음에 Code page 버튼이 있습니다.
반디소프트 공식 도움말에도 같은 안내가 화면과 함께 실려 있습니다.

순서는 이렇습니다.
- 압축 파일을 반디집으로 엽니다
- 상단 Code page 클릭
- Auto detect(자동 인식) 선택
- 목록의 파일 이름이 정상으로 보이는지 확인
- 그 상태에서 압축 풀기
이름이 제대로 보이는 상태에서 풀어야 정상 이름으로 저장됩니다. 깨진 채로 푼 다음에 이름을 고치려고 하면 파일 개수만큼 손이 갑니다.
자동 인식이 실패할 때
공식 도움말은 이 기능의 한계를 직접 밝혀둡니다.
하지만 이 기능은 주어진 문자열을 가지고 추정을 하는 방식을 사용하기 때문에 100% 정확성을 보장할 수 없으며, 특히 포함된 문자열이 적거나 비슷한 문자열이 나열된 경우 오작동하는 경우가 종종 있으므로 사용에 주의하여야 합니다.
즉 파일이 한두 개뿐인 압축 파일일수록 자동 인식이 잘 틀립니다. 이럴 때는 Code page 메뉴에서 직접 고릅니다.
| 보낸 사람 환경 | 골라볼 코드페이지 |
|---|---|
| 한국 윈도우 | 949 (Korean) |
| 일본 윈도우 | 932 (Japanese) |
| 중국 간체 | 936 (Simplified Chinese) |
| 맥·리눅스에서 만든 파일 | UTF-8 |
하나씩 바꿔가며 목록이 정상으로 보이는 것을 찾으면 됩니다. 파일을 푸는 것이 아니라 목록만 다시 그리는 것이라 몇 번을 시도해도 부담이 없습니다.
내가 보낸 파일이 깨질 때 — 압축 옵션 두 개
반대 상황도 흔합니다. 내 컴퓨터에서는 멀쩡한데 받는 사람 쪽에서 깨졌다고 합니다. 반디집은 이 문제 때문에 압축할 때 파일 이름을 저장하는 방식을 두 가지 제공합니다. 환경 설정의 압축하기 항목에 있습니다.

두 옵션의 차이가 결과를 갈라놓습니다.
① 파일명 자체를 UTF-8로 저장
공식 설명은 이것이 표준 방식이라고 하면서도 이렇게 덧붙입니다.
APPNOTE 에 정의되어 있는 표준 UTF-8 파일명 저장 방식이지만, 일부 압축 프로그램은 이를 정상적으로 인식하지 못하거나 잘못 처리하여서 오히려 파일명이 정상적으로 표시되지 않는 경우(문자 깨짐)가 종종 있습니다.
표준을 따랐는데 오히려 깨질 수 있다는 뜻입니다. 상대방이 어떤 프로그램을 쓰는지 모를 때는 켜지 않는 편이 낫습니다.
② 확장 필드에 UTF-8 파일명을 추가 저장
파일 이름은 기존 방식대로 저장하고, ZIP 파일의 여분 공간에 UTF-8 이름을 하나 더 넣어두는 방식입니다. 공식 설명은 이쪽을 더 권합니다.
확장 필드에 별도로 파일명을 저장하기 때문에 ZIP 파일의 크기가 수십 바이트 더 커질 수 있지만, 기본적으로 파일명이 MBCS로 저장이 되어 오히려 호환성은 더 좋은 편입니다.
7-Zip·WinRAR·WinZip처럼 이 확장 필드를 지원하는 프로그램에서는 다른 언어를 쓰는 운영체제에서 열어도 이름이 깨지지 않습니다. 늘어나는 용량은 수십 바이트라 사실상 없는 것과 같습니다.
⚠️ 예외가 하나 있습니다. 반디소프트는 “빵집은 빵집 자체의 버그로 인해, 이 기능이 켜진 상태로 압축된 파일을 아예 인식하지 못하는 문제가 있다”고 공식 도움말에 적어두었습니다. 상대방이 빵집을 쓴다면 이 옵션을 끄고 압축해야 합니다.
리눅스·맥으로 보낼 때는 TAR
받는 쪽이 유닉스 계열이면 ZIP 대신 TAR·TGZ를 쓰는 선택지도 있습니다. 반디집에는 TAR/TGZ로 압축할 때 파일명을 유니코드(UTF-8)로 저장 옵션이 따로 있고, 공식 설명은 이 기능을 켜고 압축하면 파일명에 한글이 있어도 유닉스 시스템에서 정상적으로 압축 해제된다고 안내합니다.
다만 같은 문서가 단서를 답니다. 일부 윈도우용 프로그램은 TAR·TGZ의 UTF-8 코드페이지를 제대로 인식하지 못할 수 있습니다. 윈도우끼리 주고받을 때 TAR을 쓸 이유는 없습니다.
가장 확실한 해결책은 따로 있습니다
옵션을 아무리 맞춰도 상대방 프로그램이 무엇인지는 알 수 없습니다. 확실한 방법은 파일 이름을 영문과 숫자로 바꿔서 압축하는 것입니다. 코드페이지 문제 자체가 생기지 않습니다.
파일이 수십 개라면 하나씩 고칠 필요 없이 윈도우 기본 기능으로 이름을 한 번에 바꾸면 됩니다. 업무 자료를 외부로 보낼 때는 이 방법이 가장 사고가 없습니다.
정리
| 상황 | 해야 할 일 |
|---|---|
| 받은 파일 이름이 깨짐 | 반디집으로 열고 Code page → Auto detect → 그 상태로 압축 풀기 |
| 자동 인식이 틀림 | Code page에서 949·932·936·UTF-8을 직접 시도 |
| 내가 보낸 파일이 깨짐 | 환경 설정 → 압축하기 → 확장 필드 저장 옵션 확인 |
| 상대가 빵집을 씀 | 확장 필드 옵션을 끄고 압축 |
| 리눅스·맥으로 보냄 | TAR·TGZ + UTF-8 옵션 |
| 어떤 환경인지 모름 | 파일 이름을 영문·숫자로 바꿔 압축 |
압축 프로그램을 아직 고르지 못했다면 알집·반디집·7-Zip 비교에서 차이를 정리해 두었습니다. 압축 파일에 비밀번호를 거는 방법은 별도 글에서 다룹니다.
이 문제와 같이 보면 좋은 글
어떤 프로그램을 쓸지 고민이라면
자주 묻는 질문
왜 압축만 풀면 파일 이름이 깨지나요?
ZIP 포맷 자체가 오래됐기 때문입니다. 반디집 공식 도움말은 유니코드와 UTF-8이 1990년대가 지나서야 개발됐기 때문에 1980년대에 만들어진 ZIP 포맷은 당연히 UTF-8을 지원하지 않았다고 설명합니다. 그래서 파일 이름이 나라별 문자 코드로 저장되고, 다른 환경에서 열면 엉뚱한 글자로 보입니다.
깨진 파일 이름을 되살릴 수 있나요?
대부분 됩니다. 반디집으로 압축 파일을 열면 상단에 Code page 버튼이 있고, 공식 도움말도 문자가 제대로 보이지 않으면 Code page를 누른 뒤 Auto detect를 시도하라고 안내합니다. 여기서 이름이 정상으로 보이는 상태에서 압축을 풀어야 합니다.
자동 인식을 눌렀는데도 그대로입니다.
반디소프트가 공식적으로 인정한 한계입니다. 코드페이지 자동 인식은 주어진 문자열로 추정하는 방식이라 100% 정확성을 보장할 수 없고, 특히 포함된 문자열이 적거나 비슷한 문자열이 나열된 경우 오작동한다고 적혀 있습니다. 이럴 때는 Code page 메뉴에서 보낸 사람의 언어에 맞는 코드페이지를 직접 골라야 합니다.
내가 압축해서 보낸 파일이 상대방에게서 깨집니다.
반디집 환경 설정의 압축하기 항목에 유니코드 파일명 관련 옵션이 두 개 있습니다. 파일명 자체를 UTF-8로 저장하는 방식은 표준이지만 일부 압축 프로그램이 잘못 처리해 오히려 깨지는 경우가 있고, 확장 필드에 UTF-8 파일명을 추가 저장하는 방식이 호환성이 더 좋다고 공식 문서가 설명합니다.
확장 필드 방식으로 하면 무조건 안전한가요?
아닙니다. 반디소프트는 빵집이 자체 버그로 이 기능이 켜진 상태로 압축된 파일을 아예 인식하지 못한다고 공식 도움말에 적어두었습니다. 상대방이 빵집을 쓴다면 이 옵션을 끄고 압축해야 합니다.
리눅스나 맥으로 보낼 때는 어떻게 하나요?
반디집에는 TAR·TGZ로 압축할 때 파일명을 UTF-8로 저장하는 별도 옵션이 있습니다. 공식 설명에 따르면 이 기능을 켜고 압축하면 파일명에 한글이 있어도 유닉스 계열에서 정상적으로 풀립니다. 다만 일부 윈도우용 프로그램이 TAR·TGZ의 UTF-8을 제대로 인식하지 못할 수 있습니다.
가장 확실한 방법은 없나요?
파일 이름을 영문과 숫자로 바꿔서 압축하는 것입니다. 코드페이지 문제 자체가 생기지 않습니다. 파일이 많다면 윈도우 기본 기능으로 이름을 한 번에 바꿀 수 있습니다.