맥 사용법

윈도우에서 만든 zip, 맥에서 한글 파일명이 깨질 때 — 맥 기본 도구로 직접 풀어 본 결과

짚어봄 2026. 10. 22. 10:05

 

윈도우 PC에서 압축한 zip 파일을 맥에서 풀었더니 한글 파일 이름이 이상한 기호로 바뀌거나, 아예 풀리지 않고 오류가 나는 경우가 있습니다. 검색해 보면 "터미널에서 unzip -O cp949를 쓰라"는 답이 많은데, 지금 맥에 기본으로 들어 있는 unzip에는 이 옵션이 없습니다. 그래서 윈도우 방식으로 이름을 적은 zip을 직접 만들어, 맥에 기본으로 들어 있는 도구로 하나씩 풀어 봤습니다.

확인 환경: Mac mini, macOS 27.0.1(빌드 26A434), 시스템 언어 한국어. 확인일 2026-10-21.

왜 깨지나요: 파일 이름을 적는 방식이 달라서

zip 파일 안에는 파일 이름이 글자 코드로 적혀 있습니다. Python 공식 문서에 따르면 zip 표준에서는 헤더의 표시(플래그)로 이름이 UTF-8인지를 알리고, 표시가 없으면 기본 코드(IBM 코드 페이지)로 봅니다. 그런데 주로 윈도우에서 쓰인 옛 방식의 프로그램은 그 컴퓨터의 지역 코드로 이름을 적는다고 같은 문서가 설명합니다. 아래 시험에서는 이런 이름을 맥 터미널 도구 일부가 "Illegal byte sequence" 오류와 함께 풀지 못했습니다.

시험용 zip은 이 방식 그대로 만들었습니다. 파일 두 개(보고서_최종.txt, 폴더 안의 사진/여름 휴가.txt)의 이름을 CP949로 적고 UTF-8 표시는 끈 상태입니다.

같은 zip을 도구마다 풀었을 때 결과(시험용 zip의 실제 바이트로 그림)

맥 기본 도구로 하나씩 풀어 본 결과

푼 방법 결과
아카이브 유틸리티(Finder에서 zip을 더블클릭하면 열리는 기본 앱) 정상. 한글 이름 그대로 풀림
터미널 ditto -x -k 파일.zip 폴더 정상
터미널 unzip 파일.zip 실패. "cannot create ??????_????.txt / Illegal byte sequence"
터미널 unzip -O cp949 파일.zip 옵션이 없어 버전 안내 문구만 나오고 파일은 풀리지 않음
터미널 tar -xf 파일.zip 실패. 이름이 \272\270… 같은 숫자로 표시되며 "Illegal byte sequence"
터미널 tar -xf 파일.zip --options hdrcharset=CP949 정상

아카이브 유틸리티는 이 맥에서 zip 파일의 기본 앱으로 지정된 앱을 직접 열어 시험했습니다. 정리하면 기본 도구 중 한글이 제대로 풀린 것은 아카이브 유틸리티, ditto, 옵션을 준 tar 세 가지입니다.

실패한 unzip과 성공한 tar의 실제 터미널 출력(옮겨 그림)

상황별로 이렇게 하세요

  • 먼저 더블클릭: 이번 시험(기본 앱인 아카이브 유틸리티로 직접 열어 봄)에서는 한국어로 설정된 맥에서 아카이브 유틸리티가 한글 이름을 제대로 풀었습니다. 이걸로 되면 따로 할 일이 없습니다.
  • 터미널에서 풀어야 한다면: unzip 대신 아래 둘 중 하나를 쓰세요. 둘 다 맥에 기본으로 들어 있는 명령입니다.
    tar -xf 파일.zip --options hdrcharset=CP949
    ditto -x -k 파일.zip 풀폴더
  • Python 3.11 이상을 따로 설치해 쓰고 있다면: python3 -m zipfile --metadata-encoding cp949 -e 파일.zip 풀폴더로도 풀립니다(-l로 바꾸면 이름만 봄). 다만 맥에 기본으로 들어 있는 /usr/bin/python3는 이 맥에서 3.9.6이라 "unrecognized arguments: --metadata-encoding" 오류가 납니다.

참고로 hdrcharset는 맥의 tar(bsdtar 3.5.3)가 쓰는 libarchive 3.7.4의 설명서(man 3 archive_read_set_options)에 zip 형식 옵션으로 나오며, 파일 이름을 바꿀 때 쓸 문자 집합을 정합니다. Python의 --metadata-encoding은 Python 3.11에서 추가된 옵션입니다. 시험에는 따로 설치한 Python 3.14.8을 썼습니다.

unzip 실패에서 tar 옵션 성공까지 과정(움직이는 그림, 약 8초)

확인하지 못한 것

  • 시스템 언어가 영어인 맥에서도 아카이브 유틸리티·ditto가 한글을 제대로 푸는지는 이 맥의 설정을 바꿔야 해서 시험하지 않았습니다.
  • 시험용 zip은 직접 만든 것입니다. 윈도우의 특정 압축 프로그램이 만든 파일과 세부 구조가 다를 수 있습니다.

출처