Sunday, October 22, 2006
펄,Perl] 한글 완성형(euc-kr)파일, 유니코드(UTF-8)로 변환 저장, Convert Unicode
한글 완성형 텍스트 즉 euc-kr 인코딩의 파일을, 유니코드(UTF-8)로 변환하는 펄 스크립트입니다.
kr2utf8.pl 이라는 스크립트명 뒤에, 변환할 한글 완성형 파일명을 적어주면 됩니다. 출력 파일명은, 입력된 한글 파일명 끝에 .uni 라는 확장자를 붙여서 자동으로 만듭니다.
한글 인코딩 파일명이 in.txt 라면, in.txt.uni 라는 이름으로 유니코드 파일이 만들어집니다.
와일드 카드를 지원하려고 하니, 오히려 소스를 이해하는 데 방해가 될 것 같았습니다. 그래서 한 번에 하나의 파일만 변환할 수 있게 했습니다. 여러 개의 파일을 동시에 변환하려면 여기를 참고하시기 바랍니다: ▶▶ 펄,Perl] 여러 개의 파일 한꺼번에 일괄 처리, 와일드카드; opendir, readdir
변환 작업이 성공했을 경우, 화면에 아무 글자도 나오지 않습니다.
펄이 아닌, 그냥 일반 편집기로 변환하는 방법은 여기에 있습니다: ▶▶ 한글 텍스트 문서를, 유니코드(Unicode / UTF-8) 로 변환하기
kr2utf8.pl 이라는 스크립트명 뒤에, 변환할 한글 완성형 파일명을 적어주면 됩니다. 출력 파일명은, 입력된 한글 파일명 끝에 .uni 라는 확장자를 붙여서 자동으로 만듭니다.
한글 인코딩 파일명이 in.txt 라면, in.txt.uni 라는 이름으로 유니코드 파일이 만들어집니다.
와일드 카드를 지원하려고 하니, 오히려 소스를 이해하는 데 방해가 될 것 같았습니다. 그래서 한 번에 하나의 파일만 변환할 수 있게 했습니다. 여러 개의 파일을 동시에 변환하려면 여기를 참고하시기 바랍니다: ▶▶ 펄,Perl] 여러 개의 파일 한꺼번에 일괄 처리, 와일드카드; opendir, readdir
완성형 한국어(euc-kr) 파일을 유니코드(UTF-8)로 변환
#!/usr/bin/perl
use strict; use warnings;
&help if $#ARGV == -1; # 옵션이 없으면 도움말 출력하고 종료
# 변환 작업을 할 함수를 호출
&fileEncodingConverter($ARGV[0], "cp949", "UTF-8"); # 입력 파일명, 입력 파일의 인코딩, 출력 파일의 인코딩
# 변환 작업을 할 함수의 본체
sub fileEncodingConverter {
my $in_file = $_[0]; # 입력 한국어 파일명
my $in_file_enc = $_[1]; # 입력 한국어 파일의 인코딩 (확장 완성형 cp949; euc-kr)
my $out_file_enc = $_[2]; # 출력 유니코드 파일 인코딩
my $out_file = $_[0] . ".uni"; # 입력 파일명 끝에, ".uni" 라는 확장자를 붙여, 출력 파일명 만들기
open IN, "<:encoding($in_file_enc)", $in_file or die "$!\n";
open OUT, ">:encoding($out_file_enc)", $out_file or die "$!\n";
foreach (<IN>) {
print OUT $_;
}
close IN; close OUT;
}
sub help { # 입력 파일을 지정하지 않았을 때, 도움말 출력하는 서브루틴
die <<TEXT;
* 한글 완성형 텍스트 파일을, 유니코드(UTF-8)로 변환 *
사용법:
kr2utf8.pl <한글 완성형 입력 파일>
출력 파일명은, 입력 파일명의 끝에 .uni 확장자가 자동으로 붙음.
출력된 UTF-8 파일에는 BOM 이 없음.
TEXT
}
use strict; use warnings;
&help if $#ARGV == -1; # 옵션이 없으면 도움말 출력하고 종료
# 변환 작업을 할 함수를 호출
&fileEncodingConverter($ARGV[0], "cp949", "UTF-8"); # 입력 파일명, 입력 파일의 인코딩, 출력 파일의 인코딩
# 변환 작업을 할 함수의 본체
sub fileEncodingConverter {
my $in_file = $_[0]; # 입력 한국어 파일명
my $in_file_enc = $_[1]; # 입력 한국어 파일의 인코딩 (확장 완성형 cp949; euc-kr)
my $out_file_enc = $_[2]; # 출력 유니코드 파일 인코딩
my $out_file = $_[0] . ".uni"; # 입력 파일명 끝에, ".uni" 라는 확장자를 붙여, 출력 파일명 만들기
open IN, "<:encoding($in_file_enc)", $in_file or die "$!\n";
open OUT, ">:encoding($out_file_enc)", $out_file or die "$!\n";
foreach (<IN>) {
print OUT $_;
}
close IN; close OUT;
}
sub help { # 입력 파일을 지정하지 않았을 때, 도움말 출력하는 서브루틴
die <<TEXT;
* 한글 완성형 텍스트 파일을, 유니코드(UTF-8)로 변환 *
사용법:
kr2utf8.pl <한글 완성형 입력 파일>
출력 파일명은, 입력 파일명의 끝에 .uni 확장자가 자동으로 붙음.
출력된 UTF-8 파일에는 BOM 이 없음.
TEXT
}
변환 작업이 성공했을 경우, 화면에 아무 글자도 나오지 않습니다.
펄이 아닌, 그냥 일반 편집기로 변환하는 방법은 여기에 있습니다: ▶▶ 한글 텍스트 문서를, 유니코드(Unicode / UTF-8) 로 변환하기
tag: perl
Perl | 펄
<< Home