반응형

윈도우에서 zip 파일로 한글 파일들을 묶으면 리눅스에선 깨져 보입니다.

그 이유는,

첫째로 zip 파일은 유니코드로 파일명을 저장하지 않기 때문이고,

둘째는 리눅스는 윈도우와 달리 UTF-8 인 유니코드 체제를 쓰기 때문에 코드가 달라서 글자가 깨지는 것입니다.

이런 문제를 막으려면 파일명을 유니코드로 저장하는 rar 이나 7zip 을 이용해서 파일을 압축하면 됩니다. 하지만 다른사람들이 다 그렇게 해주지는 않죠? ^^; 그래서 이런 파일을 한글이 안깨지게 푸는 방법을 적어보도록 하겠습니다.



예전에 unzip을 이용하는 방법을 적었던 적이 있었는데요. 이번 우분투 9.10을 설치한 이후 unzip을 봤더니 -O 옵션이 없더군요. --;

그러던 중 우분투 포럼에 이를 해결하는 내용이 올라와 있기에 올려 봅니다.

http://ubuntu.or.kr/viewtopic.php?f=18&t=7861

Perl 스크립트인데요. 저 짧은 스크립트가 zip 압축을 풀어내는 프로그램이 되다니 펄의 놀라운 능력을 보는듯 합니다. 정확히는 CPAN 의 위력이라고 해야 할까요?

위 링크에 사용법이 있지만 간단히 정리하자면....

우선 콘솔에서 'sudo apt-get install libarchive-zip-perl' 을 입력해 해당패키지를 설치하거나, synaptic 을 이용해서 libarchive-zip-perl 패키지를 찾아 설치합니다.

그리고, perl 스크립트를 긁어다가 파일로 만듭니다. 링크된 글에 있듯이 kozip 이던 kzip 이던 맘에드는 이름으로 저장하면 됩니다.

#!/usr/bin/perl
use strict;
use Encode;
use Archive::Zip;
my $zip = Archive::Zip->new();
$zip->read($ARGV[0]) == 0 or
   die "$0: couldn't read $ARGV[0]\n";
foreach my $mref ($zip->members) {
    my $n = decode("cp949",$mref->fileName);
    print "Extracting $n\n";
    $zip->extractMember($mref,$n) == 0 or
   die "$0: couldn't extract $n\n";
}


이제 저장한 파일에 실행권한을 줘야 합니다. 만일 저장 파일이 kozip 이었다면 'chmod +x kozip' 하면 됩니다.

그런 다음 위 글에서 처럼 /usr/local/bin 이나 아니면 자신의 홈디렉토리에 'bin' 디렉토리를 만들어 복사해 넣고 사용하면 됩니다.

압축을 풀때는 kozip xxx.zip 이런식으로 하면 됩니다.
그러면 한글 파일명이 깨지지 않고 잘 풀립니다. 위 링크에는 일본어 파일을 푸는 스크립트도 있으니 필요하신 분은 참고 하시기 바랍니다.



정말 훌륭하고 요긴한 팁이 아닐 수 없습니다.

예전에는 wine 으로 윈도우용 압축프로그램을 이용해 풀기도 하고 했었는데요. 이젠 그럴 필요 없겠네요. ^^;

알려주신 분께 감사 드립니다.



반응형
Strawberry Perl을 설치하고 나서 CPAN을 실행하면 에러가 납니다.

http://aero.dnip.net/blog/2007/12/strawberry-perl-510.html

위 링크에 Strawberry Perl의 소개와 CPAN의 문제 해결법이 있습니다. 참고하시기 바랍니다.
반응형
스크립트 언어로서 Perl 은 흔히 우리나라에선 '난독증' 언어라고 알려져 있습니다. 저도 그렇게 알고 있었고요. 실제 이와 관련된 이야기도 많지요. 펄관련 내용을 좀 보다 보니 왜 그런이야기가 나오는지 조금은 알것도 같습니다.

스크립트 언어로는 Python을 아주 조금 써봤고 ruby는 기본 튜터리얼 정도 읽어본 상태에서 다시 Perl을 건드려 보고 있습니다. Perl을 굳이 보는 이유는 그냥 역사가 오래된 언어 이기도 하고 해서 한번 해보고 싶었기 때문입니다. CPAN의 방대하다는 라이브러리도 그냥 궁금했었고요.

python은 여러모로 괜찮긴 하지만 그 indent 는 그냥 제 성미에 조금 안맞습니다. ruby는 마음에 들긴 하는데 아직은 좀 더 지켜봐야 겠고...비록 국내는 Perl을 쓰는 분들이 별로 없지만 외국에선 아직도 많이 쓰이고 사랑받는 언어이기도 하고 여러 다용도로 쓰기에도 좋아 보이더군요.

 윈도우에선 ActivePerl을 쓰는게 보통이었는데, 윈도우용 C컴파일러를 내장하여 CPAN을 유닉스 계열과 똑같이 사용할 수 있도록 한 Perl 이 바로 StrawberryPerl 입니다. 홈페이지 메인의 거대한 딸기가 인상적입니다. 매우 맛있어 보입니다. ^^

사이트는 http://strawberryperl.com/  여기 입니다. Perl 5.10 출시와 같이 윈도우용도 5.10으로 정식으로 나왔습니다. 단 비스타에서는 좀 문제가 있는 모양 입니다.

아울러 별로 사용자가 없는 국내에서 그런데로 활성화 되어 있는 걸로 보이는 국내 펄 관련 사이트 하나 링크 합니다. http://www.perlmania.or.kr/

그나저나 국내 번역 Perl 서적들은 대부분 오래된것이라 마땅한게 없어 보이는 군요. 영문서적은 좀 곤란한데...--;

+ Recent posts