# h2z_all.pl
# 内容 : 半角文字(英数字、記号およびカナ)を全角文字に変更する
# 前提 : 入力ファイルはUTF-8(BOMなし)、
#        スクリプトはUTF-8(BOMなし)とすること
#        通常のperlで動作可能
# Copyright (c) 2011 Mitsuo Minagawa, All rights reserved.
# (minagawa@fb3.so-net.ne.jp)
# 使用方法 : c:\>perl h2z_all.pl
#

open(IN1,"input_utf8.txt");
open(OUT1,">output_utf8.txt");

use Unicode::Japanese;

while	($line1	=	<IN1>)	{

# CSV形式の $line1 から値を取り出して @in1 に入れる

	chomp($line1);
	$line1	=~	s/(?:\x0D\x0A|[\x0D\x0A])?$/,/;
	@in1	=	map {/^"(.*)"$/ ? scalar($_ = $1, s/""/"/g, $_) : $_}
				($line1 =~ /("[^"]*(?:""[^"]*)*"|[^,]*),/g);

#3番目の項目に半角文字があるものとする
	$temp	=	$in1[2];
#記号・英数字・カタカタをすべて全角文字に変換する
	$in1[2]	=	Unicode::Japanese->new($temp)->h2z->get;
#記号のみを全角文字に変換する
#	$in1[2]	=	Unicode::Japanese->new($temp)->h2zSym->get;
#数字のみを全角文字に変換する
#	$in1[2]	=	Unicode::Japanese->new($temp)->h2zNum->get;
#英字のみを全角文字に変換する
#	$in1[2]	=	Unicode::Japanese->new($temp)->h2zAlpha->get;
#カタカタのみを全角文字に変換する
#	$in1[2]	=	Unicode::Japanese->new($temp)->h2zKana->get;
#カタカタ(濁音つき、半濁音つきを除く)を全角文字に変換する
#	$in1[2]	=	Unicode::Japanese->new($temp)->h2zKanaK->get;
#カタカタ(濁音つき、半濁音つきのみ)を全角文字に変換する
#	$in1[2]	=	Unicode::Japanese->new($temp)->h2zKanaD->get;
	$out1	=	join("\t",@in1);
	print	OUT1	"$out1\n";
}

close(IN1);
close(OUT1);
