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