SSブログ

perlをUTF-8で書く [perl]

Cygwinで使用する文字コードをUTF-8にした。perlもUTF-8で書いて、Linuxとの互換性を確保する。
google先生で勉強したところ、以下4点を守れば、文字化けに困ることはなさそうだ。
[1]perlスクリプトはutf-8でファイル保存しろ!
[2]外部から読み込んだ文字列は、内部コードにdecodeしろ!
[3]文字列を外部に出力するときは、encodeしろ!
[4]ファイルを読み込むときは、変換元の文字コードを指定して、encodingしろ!
具体的に以下にまとめる。
[位置情報]モジュールの宣言
#!/usr/bin/perl
use utf8;
use Encode;

[位置情報]外部からの文字列を変換
#UTF-8文字列を読み込む場合
$internal_value = decode('utf-8', $value);

#ウィンドウズの文字列を読み込む場合 ※shift-JISでないことに注意!
$internal_value = decode('cp932', $value);

#euc-jp文字列を読み込む場合
$internal_value = decode('euc-jp', $value);

[位置情報]文字列を外部に出力する(decodeした文字列に対して実施)
#UTF-8で出力する場合
print encode('utf-8', $internal_value);

#ウィンドウズ向けに出力する場合 ※shift-JISでないことに注意!
print encode('cp932', $internal_value);

#euc-jpで出力する場合
print encode('euc-jp', $internal_value);

[位置情報]ァイルを読み込むときは、変換元の文字コードを指定して、encoding
#ウィンドウズで作成したshift-JISファイルを読み込む場合 ※shift-JISでないことに注意!
open(IN,"<:encoding(cp932)", $ARGV[0]);
@recs=;
close(IN);


初めてのPerl 第5版

初めてのPerl 第5版

  • 作者: Randal L. Schwartz
  • 出版社/メーカー: オライリージャパン
  • 発売日: 2009/10/26
  • メディア: 大型本



モダンPerl入門 (CodeZine BOOKS)

モダンPerl入門 (CodeZine BOOKS)

  • 作者: 牧 大輔
  • 出版社/メーカー: 翔泳社
  • 発売日: 2009/02/10
  • メディア: 大型本



Perl CPANモジュールガイド

Perl CPANモジュールガイド

  • 作者: 冨田尚樹
  • 出版社/メーカー: ワークスコーポレーション
  • 発売日: 2011/04/08
  • メディア: 単行本(ソフトカバー)



nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

CygwinはUTF-8で使え!perlでIE操作 ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。