アプリ版:「スタンプのみでお礼する」機能のリリースについて

最近Perl5.8にし、文字コードをUTF8をベースに使うようになりました。
以前は、5.6を使っていたので、文字コードについては、あまり意識せず、
出力時のみ気を使っていました。Perl5.8からPerlIOというものがあり、
いまいち理解しづらいのですが、PerlIOについて詳しく書かれている書籍(5.8以上に特化)
を探しているのですが、お薦めがございました ら是非お教えください。
最悪、洋書でも構いません。

IO::Fileを使って、入力文字コードは euc-jpで、出力文字コードはシフトJISにする
設定方法がしりたいです。

A 回答 (4件)

とりあえずCPANから,書籍の案内を探すとか


オライリーのサイトを見るとか

>IO::Fileを使って、入力文字コードは euc-jpで、出力文字コードはシフトJISにする

これはオンラインドキュメントの
encodingモジュールとかそのあたり
洋書でよいならこのドキュメントでもOKでしょう.

ところで5.8の和書ってあるんでしょうか
#らくだ,リャマは5.6でしたっけ
知り合いの某コンピュータ出版社の編集さんに
聞いたら,5.8の書籍の企画はないとか
いってたくらいで(^^;;;
    • good
    • 0

>>:encoding(utf8)では正しく変換してましたが、


>>:encoding(utf-8)では正しく変換している部分はかなりありますが、一部正しく変換しておりません。
ちょっとわからないです。
というか、UTF8ベースで書いている(use encoding 'UTF-8')時には、出力のencodeは、必要ない(デフォルトでUTF8で出力される)です。

>utf8, utf-8と似たような表現方法がありましが、
>大違いなのでしょうか?
使っているモジュールでちょっとちがうのかもしれません。
私には、ちょっと違いはわかりません。
    • good
    • 0

>:encoding() プラグマ?を使うんですね。


「:encoding()」
は、レイヤーといいます。いわゆるPerlIOです。PerlIOレイヤー。
他には、
:unix
:crlf
:raw
とか色々のレイヤーがあります。重複指定もできます。
例えば
:raw:encoding(shiftjis)
とか
binmode STDOUT => ":raw:encoding(UTF-16LE)";
とか
use encoding 'utf8' STDOUT => ":encoding(shifitjis)";
みたいなこともできます。
    • good
    • 0

>IO::Fileを使って、入力文字コードは euc-jpで、出力文字コードはシフトJISにする


こんな感じ
---------------------------
use encoding 'UTF-8';
use IO::File;
$in = new IO::File;
$out = new IO::File;
$in->open("EUC.TXT", "<:encoding(euc-jp)");
$out->open("SJIS.TXT", ">:encoding(shiftjis)");
while(<$in>){
print $out $_;
}
$out->close;
$in->close;
--------------------------------------------------
また、IO::Fileを使わないで
use encoding 'UTF-8';
open(IN, "<:encoding(euc-jp)", "EUC.TXT");
open(OUT,">:encoding(shiftjis)","SJIS.TXT");
while(<IN>){
print OUT;
}
close(OUT);
close(IN);
でいいです。同じ意味。

この回答への補足

なるほど、 :encoding() プラグマ?を使うんですね。

この例題を使わせて頂いて、以下の2つを確めた所
>:encoding(utf8)では正しく変換してましたが、
>:encoding(utf-8)では正しく変換している部分はかなりありますが、一部正しく変換しておりません。

utf8, utf-8と似たような表現方法がありましが、
大違いなのでしょうか?

補足日時:2005/09/15 12:03
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!