Perlで日本語

Perlで日本語を使用するときの三原則
原則1:外部から入力された文字列はデコードして内部文字列に変換する

# 文字コードはバイト文字列がどの文字コードで記述されているかを知らせるもの
内部文字列 = decode(文字コード,バイト文字列);



use Encode 'decode';

# コマンドライン引数(外部からの入力)
my $byte_str = shift;

# UTF-8バイト文字列を内部文字列に変換
my $internal_str = decode('UTF-8',$byte_str);

原則2:外部へ出力する文字列はデコードしてバイト文字列に変換する

バイト文字列 = encode(文字コード,内部文字列);

use Encode 'decode';

# 内部文字列をUTF-8バイト文字列に変換
my $byte_str = encode('UTF-8',$internal_str);




原則3:ソースコードUTF-8で保存し、utf8プラグマを有効にする

UTF-8文字列リテラルを内部文字列に変換
use Encode 'decode'

my $byte_str = 'あいうえお';
my $internal_str = decode('UTF-8',$byte_str);