Shift_JIS(cp932)を使用する
プログラムを記述する場合に文字コードとしてシフトJISを使用する場合を確認します。
シフトJISを使用する場合は「encoding」プラグマを使ってプログラムの冒頭で次のように記述します。
use encoding "cp932";
※「cp932」はMicrosoftがShift_JISを独自に拡張した文字コードです。
この記述を行うとシフトJISで記述されたプログラムをUTF-8に変換して処理してくれます。よってテキストエディタなどでプログラムを記述した時に、文字コードをシフトJISを使って保存することができます。
また自動的に標準入力と標準出力の文字コードが指定した文字コード(今回の場合はシフトJIS)となるため、明示的に標準入力と標準出力の文字コードを指定する必要はありません。ただ標準エラー出力だけは自動で設定が行われないため明示的に設定が必要となります。
use encoding "cp932"; binmode STDERR, ':encoding(cp932)';
これでシフトJISを使ってPerlのプログラムを記述する準備ができました。
サンプルプログラム
では簡単なプログラムで確認して見ます。
use strict; use warnings; use encoding "cp932"; binmode STDERR, ':encoding(cp932)'; print "こんにちは¥n"; print "図表¥n";
上記を「test2-1.pl」の名前で保存します。保存する時の文字コードは「シフトJIS」として下さい。そしてコマンドプロンプトを起動し、プログラムを保存したディレクトリに移動してから次のように実行して下さい。
日本語も問題なく処理されていることが確認できます。
( Written by Tatsuo Ikura )