우분투 10.04에서 zip파일 한글 깨짐 문제 해결
우분투 10.04 (리눅스)/설명서 / 2010. 5. 20. 14:00
*아래 글은 우분투 한국 사용자 모임에서 옮겨오거나 인용한 것입니다.
저는 개인적으로 zip파일에 한글명이 있을 경우에는 J-zip을 사용합니다.
약간 번거롭지만 kozip보다는 쉽게 사용이 가능하다고 생각했습니다.
그런데 우분투 사용자 모임에서 노틸러스를 이용해 압축을 풀 수 있는 방법이 있어 소개합니다.
먼저 노틸러스 확장 기능을 설치합니다.
$ sudo apt-get install nautilus-actions
다음은 kozip 파일을 생성하는 것입니다.
$ sudo apt-get install libarchive-zip-perl
$ sudo gedit /usr/local/bin/kozip
으로 파일을 생성하여
아래 내용을 저장합니다.
Code:
#!/usr/bin/perl
use strict;
use Encode;
use Archive::Zip;
use Cwd 'abs_path';
use File::Basename;
my $full_path = abs_path($ARGV[0]); # 해당 화일의 풀패스를 얻어옴..
# 나중에 해당 zip 화일 명으로 폴더를 만들어 넣기 위해 확장자를 뺀 화일 이름을 구함
my ($fileNameOnly, $directory, $ext) = fileparse($full_path, '\.[^.]*');
chdir $directory ; # 경로가 계정 위치가 되는 것을 막기 위해 해당 zip화일이 있는 곳으로 경로 변경
my $zip = Archive::Zip->new();
$zip->read($ARGV[0]) == 0 or
die "$0: couldn't read $ARGV[0]\n";
# 만일 zip 화일 명이 한글일 경우 이런 식으로 안하면 디렉토리 글자가 깨짐 이유는 모름 -_-;
my $ExtractFileName;
my $FileNameUTF8 = decode("utf-8",$fileNameOnly);
foreach my $mref ($zip->members)
{
my $n = decode("cp949",$mref->fileName);
print "Extracting <$n>\n";
$ExtractFileName = $FileNameUTF8 . "/" . $n; # 디렉토리 밑에다가 압축 화일을 넣기 위해 이름 설정
$zip->extractMember($mref,$ExtractFileName) == 0 or
die "$0: couldn't extract $n\n";
}
use strict;
use Encode;
use Archive::Zip;
use Cwd 'abs_path';
use File::Basename;
my $full_path = abs_path($ARGV[0]); # 해당 화일의 풀패스를 얻어옴..
# 나중에 해당 zip 화일 명으로 폴더를 만들어 넣기 위해 확장자를 뺀 화일 이름을 구함
my ($fileNameOnly, $directory, $ext) = fileparse($full_path, '\.[^.]*');
chdir $directory ; # 경로가 계정 위치가 되는 것을 막기 위해 해당 zip화일이 있는 곳으로 경로 변경
my $zip = Archive::Zip->new();
$zip->read($ARGV[0]) == 0 or
die "$0: couldn't read $ARGV[0]\n";
# 만일 zip 화일 명이 한글일 경우 이런 식으로 안하면 디렉토리 글자가 깨짐 이유는 모름 -_-;
my $ExtractFileName;
my $FileNameUTF8 = decode("utf-8",$fileNameOnly);
foreach my $mref ($zip->members)
{
my $n = decode("cp949",$mref->fileName);
print "Extracting <$n>\n";
$ExtractFileName = $FileNameUTF8 . "/" . $n; # 디렉토리 밑에다가 압축 화일을 넣기 위해 이름 설정
$zip->extractMember($mref,$ExtractFileName) == 0 or
die "$0: couldn't extract $n\n";
}
[시스템]>[기본설정]>[노틸러스 동작설정(Nautilus Actions Configuration)]에서
아래와 같이
'우분투 10.04 (리눅스) > 설명서' 카테고리의 다른 글
우분투 10.04에서 zip 파일 깨짐 현상 해결하기 - JZip 0.9 사용하기 (0) | 2010.05.20 |
---|---|
윈도우 프로그램을 대체할 수 있는 리눅스 프로그램 (0) | 2010.05.15 |
우분투 10.04 문제 해결 (0) | 2010.05.10 |
코분투 설치 후 추가 설치 하면 좋은 프로그램들-강분도 님 제공 (0) | 2010.05.01 |
우분투 설치 후 설정하기(작성 중) (0) | 2010.05.01 |