UTF-8은 다국어를 표현하기 위해 만들어진 유니코드 문자열을 저장하는 방식 중의 하나입니다.
유니코드와 UTF-8은 1990년대가 지나서야 개발되었기 때문에, 1980년대에 개발된 ZIP 포맷은 당연히 UTF-8을 지원하지 않았습니다. 하지만 이후 ZIP 포맷이 압축 파일의 표준 포맷이 되어 ZIP 포맷에서도 유니코드를 지원해야 할 필요가 생겼고, ZIP 파일에서 UTF-8 문자열을 처리할 수 있는 방법들이 여럿 개발되었습니다.
반디집은 파일명 자체를 UTF-8으로 저장하는 방식과, 파일명 자체는 MBCS로 저장하지만 확장 필드에 UTF-8 파일명을 추가로 저장하는 방식 두 가지를 지원합니다.
ZIP 파일 내부에 압축된 파일명 자체를 UTF-8으로 저장하는 방식입니다. APPNOTE 에 정의되어 있는 표준 UTF-8 파일명 저장 방식이지만, 일부 압축 프로그램은 이를 정상적으로 인식하지 못하거나 잘못 처리하여서 오히려 파일명이 정상적으로 표시되지 않는 경우(문자 깨짐)가 종종 있습니다. APPNOTE
이 방식은 파일명을 MBCS로 저장하고, ZIP 포맷의 확장 필드에 추가로 UTF-8 파일명을 저장하는 방식입니다. 이 방식 역시 APPNOTE 에 Info-ZIP Unicode Path Extra Field라는 이름으로 정의되어 있으며, 확장 필드에 별도로 파일명을 저장하기 때문에 ZIP 파일의 크기가 수십 바이트 더 커질 수 있지만, 기본적으로 파일명이 MBCS로 저장이 되어 오히려 호환성은 더 좋은 편입니다.
서로 다른 언어를 사용하는 OS에서도 이 확장 필드를 지원하는 압축 프로그램(7-Zip, WinRAR, WinZip)을 사용하면 파일명이 깨지지 않는 등 장점이 많습니다.
아래는 한국어 Windows에서 압축한 파일을 일본어 Windows에서 7-Zip으로 파일을 열어 본 화면입니다.
아쉽게도 빵집은 빵집 자체의 버그로 인해, 이 기능이 켜진 상태로 압축된 파일을 아예 인식하지 못하는 문제가 있습니다. 이 경우에는 해당 옵션을 끄고 파일을 압축해 주시기 바랍니다.
TAR나 TGZ 와 같은 포맷은 주로 Unix에서 사용하는 압축 포맷이고, Unix 시스템은 UTF-8 파일명을 사용합니다. 이 기능을 활성화하고 파일을 압축하면 파일명에 한글이 포함되어 있어도 Unix 시스템에서 정상적으로 압축 해제됩니다.
단, 일부 Windows 용 프로그램에서는 TAR/TGZ 포맷의 UTF-8 코드페이지를 정상적으로 인식하지 못하는 문제가 발생할 수 있습니다.