SPAN class=postbody한글파일명이 들어간 zip 압축파일을 Linux에서 unzip 으로 압축을 풀면 한글이 깨져서 보이는 경우가 있습니다. 거의 대부분의 Linux 시스템에서 이러한 현상이 나옵니다. 하지만 unzip 의 버그는 아니고 Linux 시스템의 code page 설정이 일치하지 않아서 나오는 현상입니다. br /br /unzip 은 압축파일을 풀면서 파일명을 복원할때 Ext_ASCII_TO_Native 함수로 파일명에 변환을 하게 됩니다. 문제는 이변환과정을 거치지 않아야 한글파일명이 보이게 되는 시스템이 상당히 많다는 점입니다. br /br /이 경우에 어찌되었건 해결을 해야 되는데 소스를 받아서 해당부분을 직접 패치하는 방법을 적어봅니다. br /br /우선 unzip source 를 받아서 압축을 풉니다. br /그리고 소스중에서 fileio.c 파일을 편집합니다. br /br /fileio.c 에서 다음과 같은 부분을 찾습니다. (아래의 코드는 unzip v5.51기준입니다.) br /br //SPAN
TABLE cellSpacing=1 cellPadding=3 width=90% align=center border=0
TBODY
TR
TDSPAN class=genmedB코드:/B/SPAN/TD/TR
TR
TD class=code/* translate the Zip entry filename coded in host-dependent extended br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;ASCII into the compiler's (system's) internal text code page */ br /nbsp; nbsp; nbsp; nbsp; Ext_ASCII_TO_Native(G.filename, G.pInfo-gt;hostnum, G.pInfo-gt;hostver, br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; G.pInfo-gt;HasUxAtt, (option == DS_FN_L));/TD/TR/TBODY/TABLESPAN class=postbodybr /br /br /br /이와 흡사한 부분이 몇군데 있는데 이중에서 filename 에 대한 변환부분을 찾아야 합니다. 다른 엉뚱한곳을 수정하면 안되고 딱 한군데 filename 변환부분이 있으니 이를 찾아서 이 부분을 주석처리 또는 제거합니다. br /br /컴파일후에 한글파일명이 들어간 압축파일을 풀어보세요. 잘될겁니다./SPANSPAN class=postbodybr //SPAN
받은 트랙백이 없고,
댓글이 없습니다.

글
댓글을 달아 주세요
댓글 RSS 주소 : http://blog.minzkn.com/rss/comment/164댓글 ATOM 주소 : http://blog.minzkn.com/atom/comment/164