맥에서 압축한 ZIP 을 윈도우에서 풀면 이름이 깨지는 이유와 해결

맥 「압축」으로 만든 ZIP 은 파일 이름을 UTF-8 로 적고도 그 사실을 표시하지 않습니다. 한국어 윈도우가 CP949 로 읽어 「꼪뀳」 같은 글자가 나오는 원리와, 내용은 그대로 두고 이름만 고치는 방법을 정리했습니다.

고친 날: 2026-10-26

맥에서 폴더를 오른쪽 클릭 → 「압축」으로 만든 ZIP 을 윈도우에서 풀면, 파일 이름이 이렇게 나오는 일이 흔합니다.

�꼶�뀶�꼳�뀳�녅 �꼪�뀳����뀳�꼮�뀯.txt

원래 이름은 「최종 보고서.txt」입니다. 물음표·네모 같은 깨진 표시와 「꼪·뀳·넰」 같은 낯선 한글이 번갈아 나오는 모양이 맥 ZIP 의 전형적인 깨짐입니다. 이것은 두 가지 문제가 겹친 결과입니다.

1. ZIP 은 이름을 어떤 글자표로 적었는지 따로 표시해야 합니다

ZIP 형식은 1989년에 만들어졌고, 처음에는 파일 이름을 DOS 시절 영문 글자표(IBM 코드 페이지 437)로 적는다고 정했습니다. 그 뒤 나라마다 자기 글자표로 이름을 적기 시작했고, 한국어 윈도우의 압축 프로그램은 CP949(한국어 윈도우 코드 페이지)로 이름을 적어 왔습니다.

2006년 ZIP 명세(APPNOTE 6.3.0)에 「이 이름은 UTF-8 입니다」 표시가 추가됐습니다. 각 항목 머리의 일반 목적 플래그 11번 비트(Language encoding flag)입니다. 이 비트가 켜져 있으면 받는 프로그램은 이름을 UTF-8 로 읽고, 꺼져 있으면 각자 알아서 추측합니다.

2. 맥의 기본 압축은 UTF-8 로 적고 표시는 하지 않습니다

macOS 의 「압축」(아카이브 유틸리티)이 만든 ZIP 을 열어 보면 이름은 UTF-8 로 적혀 있는데 11번 비트는 꺼져 있습니다. 게다가 이름은 맥이 저장한 그대로 자소 분리(NFD) 상태입니다. 이 사이트에서 실제로 ditto 명령(Finder 압축과 같은 엔진)으로 만든 ZIP 을 읽어 보면 모든 항목의 11번 비트가 0 이었습니다.

한국어 윈도우 탐색기는 표시가 없는 이름을 시스템 코드 페이지인 CP949 로 읽습니다. UTF-8 바이트를 CP949 로 읽으니 엉뚱한 글자가 나오고, NFD 의 조각 바이트(E1 84 .., E1 85 ..)가 「꼪」「뀳」 같은 글자로 반복해서 읽히면서 위와 같은 무늬가 생깁니다.

원래 이름맥 ZIP 을 한국어 윈도우 탐색기에서 연 모습
최종 보고서.txt�꼶�뀶�꼳�뀳�녅 �꼪�뀳����뀳�꼮�뀯.txt
사진�꼮�뀫�꼳�뀿�넫
회의록�꼺�뀶�꼱�뀾�꼨�뀳�넧

반대로 한국어 윈도우에서 CP949 로 이름을 적은 ZIP 을 CP949 를 모르는 프로그램에서 열어도 깨집니다. 방향만 반대일 뿐 원리는 같습니다. 이름을 적은 글자표와 읽는 글자표가 다르면 깨집니다.

함께 따라오는 __MACOSX 폴더

맥 ZIP 을 윈도우에서 풀면 __MACOSX 폴더와 ._파일이름 같은 작은 파일이 잔뜩 생깁니다. 맥 파일의 확장 속성(아이콘, 태그, 다운로드 출처 등)을 담은 AppleDouble 파일로, 윈도우에서는 쓸모가 없습니다. .DS_Store 도 Finder 가 폴더 보기 설정을 저장하는 파일이라 지워도 됩니다.

해결 1 — 이름만 고친 새 ZIP 으로 바꾸기

한글 파일명 복구의 「ZIP 복구」 탭 에 ZIP 을 놓으면 다음을 합니다.

  1. ZIP 끝의 중앙 디렉터리를 읽어 항목마다 원래 이름 바이트를 꺼냅니다.
  2. 11번 비트, Info-ZIP 유니코드 경로(0x7075) 정보, UTF-8 문법 검사를 차례로 보고 이름의 글자표를 판단합니다. 표시가 없어도 UTF-8 문법에 맞으면 UTF-8 로, 아니면 CP949 로 읽습니다. 판단이 틀리면 「원래 이름 해석」을 직접 고를 수 있습니다.
  3. 이름을 NFC 로 바꾸고, 원하면 윈도우 금지 문자와 맥 전용 파일을 정리합니다.
  4. 압축된 데이터는 한 바이트도 고치지 않고 그대로 옮기고, 이름을 쓴 머리 부분만 새로 씁니다. 다시 압축하지 않으므로 빠르고, 파일마다 CRC 값이 원본과 같습니다.
  5. 새 이름에는 11번 비트를 켜서 UTF-8 이라고 표시합니다.

결과 ZIP 은 윈도우 10·11 탐색기, 반디집, 7-Zip, 맥에서 모두 원래 이름으로 풀립니다.

옛 윈도우로 보낼 때는 CP949 저장

UTF-8 표시를 무시하는 옛 탐색기(윈도우 7 등)나 오래된 압축 프로그램을 쓰는 한국어 윈도우로 보낸다면 「이름 저장 방식」을 CP949 로 고르세요. 이름을 한국어 윈도우가 기본으로 읽는 CP949 로 적고, 같은 이름의 UTF-8 판을 Info-ZIP 유니코드 경로 정보(0x7075)에 함께 넣어 둡니다. 이 정보를 아는 최신 프로그램은 UTF-8 이름을 쓰고, 모르는 프로그램은 CP949 이름을 씁니다. 단, CP949 에 없는 글자(일부 한자·이모지 등)가 든 이름은 그 항목만 UTF-8 로 적습니다. 한국어가 아닌 윈도우에서는 CP949 이름이 깨지니 받는 사람이 한국어 윈도우일 때만 고르세요.

해결 2 — 받는 쪽에서 글자표를 골라 풀기

반디집처럼 파일 이름 글자표(코드 페이지)를 바꿔 여는 기능이 있는 압축 프로그램이라면, 맥 ZIP 을 UTF-8 로 지정해 풀 수 있습니다. 다만 이렇게 풀어도 이름은 여전히 자소 분리(NFD) 상태라 탐색기에서 「ㅎㅏㄴㄱㅡㄹ」로 보일 수 있습니다. 그때는 윈도우에서 한 번에 고치기 의 스크립트를 이어서 쓰면 됩니다.

해결 3 — 보내는 쪽에서 처음부터 바르게 묶기

맥 사용자가 보내기 전에 이 사이트의 「파일·폴더」 탭에 폴더를 놓고 「고친 이름으로 ZIP 받기」를 누르면, 처음부터 NFC 이름 + UTF-8 표시로 묶인 ZIP 이 만들어집니다. 받는 사람은 아무것도 하지 않아도 됩니다. 자세한 방법은 맥에서 보내기 전에 막기 에 있습니다.

알아 두면 좋은 점

도구 열기