JSZip은 웹에서 zip 압축 파일을 생성하거나 풀 때 사용하는 라이브러리인데, 기본적으로 압축 파일 안의 파일 명이 한글일 때 파일 명이 깨진다. 그런데 이 문제를 해결할 수 있다. iconv 라이브러리를 사용하면 되고 JSZip은 내부적으로 iconv 라이브러리와 연계하여 압축 파일 안의 파일 명이 한글일때 문제점을 해결해 주는 API를 지원한다. 코드는 다음과 같다.
const zip = new JSZip(); zip.loadAsync(aBuf, { decodeFileName: function (bytes) { return iconv.decode(bytes, "euc-kr"); } }).then((zip) => { for(let file of Object.values(zip.files)) { console.log(file.name); } });