- ベストアンサー
[Perl]ファイル出力のエンコード(EUC、SJIS、UTF8)を指定したい
EUCで書かれた文章を読み取ったにもかかわらず、S-JISで出力されます。 これを、任意の文字コードに指定して、出力する方法は無いものでしょうか? ご存知の方、教えてください。 宜しくお願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
以下のサンプルは、コードをUTF-8 で記述して、標準出力をシフトJISで出力し、EUC-JPでファイルから入力します。 "<:encoding(euc-jp)" は、PerlIO レイヤの指定で、これを変えれば、ファイル出力を任意の文字コードにできます。 binmode STDOUT, ":encoding(euc-jp)"; のような指定もできます。 ---------------------------------------------------------------- use encoding "UTF-8", STDOUT => "Shift_JIS"; open(FH, "<:encoding(euc-jp)", "EUC.txt"); while(<FH>){ print ; } close(FH);
その他の回答 (1)
- osamuy
- ベストアンサー率42% (1231/2878)
回答No.1
Perl 5.8以降なら、プラグマencodingが利用できますので、例えば基本エンコーディングをEUC、出力ファイルハンドルをUTF-8にするといった事ができます。 くわしくはperldoc encodingをどうぞ。 サンプルもいろいろ書かれてます。
質問者
お礼
回答いただきありがとうございます。 とても、参考になりました!
お礼
回答いただきありがとうございます。 とても、参考になりました!