広告 プログラミング言語-Perl

5 半角文字と全角文字の変換

Perl入門は、省略www

Perlの一般的な文法等については、他の素晴らしいサイトで学んでください。例えば以下のページとか。

Perl入門(他のサイト)

半角全角変換のサンプルソース

この記事では、半角・全角文字を安全に変換する手順のサンプルを示します。

以下のソースを秀丸エディタにコピペします。

#!/usr/bin/perl

# perl5.8以降で、日本語を扱う方法2 半角全角変換
# 必ずソースをUTF-8で記載すること。

use strict;
use warnings;
use Encode;
use Encode::JP::H2Z;
use utf8;

binmode STDIN, ":encoding(cp932)";   # 入力なのに、何故かencoding
binmode STDOUT, ":encoding(cp932)";
binmode STDERR, ":encoding(cp932)";

# ファイルハンドル<IN>等からの入力時はdecodeが必要
# ファイルハンドル<OUT>等への出力時はencodeが必要

our $debug=1;

our $ScriptDir=$0; #実行中のplスクリプトフルパス
$ScriptDir=&de_sjis($ScriptDir);
$ScriptDir=~s/[^\\]+\.pl$//;
&vv('$ScriptDir',$ScriptDir);



#サンプル文字列
my $buf='abcABCabcABCあいうえおアイウエオアイウエオ漢字';
&vv('Normal',$buf);

#全角から半角へ

$buf =~ tr/A-Z/A-Z/;
$buf =~ tr/a-z/a-z/; 
# $buf =~ tr/a-z/A-Z/;      #半角小文字を半角大文字へする場合
# $buf =~ tr/a-z/A-Z/;      #全角小文字を半角大文字へする場合

#注意$buf =~ tr/あ-ん/ア-ン/; では、失敗します。(コード順が異なるので)
$buf =~ tr/あ-ん/ア-ン/;         # まずはカタカナへ
$buf=&en_euc($buf);
Encode::JP::H2Z::z2h(\$buf);     # このモジュール関数はEUC-JPでないと動かない
$buf=&de_euc($buf);

&vv('z2h',$buf);

#---------------------------
#サンプル文字列
$buf='abcABCabcABCあいうえおアイウエオアイウエオ漢字';

#半角から全角へ

$buf =~ tr/a-z/a-z/;
$buf =~ tr/A-Z/A-Z/;
# $buf =~ tr/a-z/A-Z/;   #全角小文字を全角大文字にする場合

#注意$buf =~ tr/ア-ン/ア-ン/; では、失敗します。(コード順が異なるので)
$buf=&en_euc($buf);
Encode::JP::H2Z::h2z(\$buf);     # このモジュール関数はEUC-JPでないと動かない
$buf=&de_euc($buf);

&vv('h2z',$buf);

print '[Finish!]';
<>;

exit;

#======================

sub en_sjis
{
    my ($buf)=@_;
    encode('cp932',$buf);
}

sub de_sjis
{
    my ($buf)=@_;
    decode('cp932',$buf);
}

sub en_utf8
{
    my ($buf)=@_;
    encode('utf-8',$buf);
}

sub de_utf8
{
    my ($buf)=@_;
    decode('utf-8',$buf);
}
sub en_euc
{
    my ($buf)=@_;
    encode('euc-jp',$buf);
}

sub de_euc
{
    my ($buf)=@_;
    decode('euc-jp',$buf);
}

sub vv
{
    my($Name,$Value)=@_;
    if($debug) {
        print $Name.'=['.$Value.']',"\n";
    }
}

【重要】ソースをUTF-8コードに変換します。(再掲)

秀丸エディタ2

後は、「japanese.pl」等の適当なスクリプト名でデスクトップに保存します。

【重要】試験実行は、必ずcmd.exeのコマンドプロンプトで(再掲)

バグがなければ、そのままjapanese.plをWクリックしても動きます。しかし、もしバグがあった場合に、そのエラーや警告が画面に表示されません。従って、cmd.exeのショートカットから作成したコマンドプロンプトで実行する癖をつけましょう。

下記手順で作成するコマンドプロンプトを作成できます。(以下、再掲)

まず、デスクトップ上の何もないところで、右クリックし、「新規作成」>「ショートカット」を選択。

コマンドプロンプト作成1

「cmd.exe」と半角小文字で入力し、「次へ」をクリック。

コマンドプロンプト作成2

「完了」ボタンをクリック。まだ続きがあります!!!

コマンドプロンプト作成3

【最重要】作成したショートカットを右クリックし、「プロパティ」を開く。

コマンドプロンプト作成4

「作業フォルダー」の内容を全て消し、空欄にすること。これで完成。「OK」ボタンで閉じる。

コマンドプロンプトをダブルクリックして、「perl -v 」と入力して[Enter]キーを押し、perlのバージョンが表示されたら成功です。
エラーがあっても画面が閉じずにエラー内容を確認できます。

後は、作成したコマンドプロンプトをWクリックして開き、「japanese.pl」 もしくは 「perl japanese.pl」と入力したら動きます。

正常に動作するようになったら、plファイルをWクリックするだけで動かせます。

-プログラミング言語-Perl