作者: dune
日時: 2009/5/16(00:49)
泥造です。

Zazelさんの[TSperl:891] Re: UTF-32BE & binmodeから
>最初に確認ですが、「0x00 0x00 0x00 0x0D 0x0A と変換されてしまう」の
>間違いでいいですか? (0D と 0A が逆)

間違いでした。

>> open(FOUT, ">:encoding(UTF-32BE):raw", $fout)
>> とか書けないみたいだし、残念です。
>
>これでいけない理由は、PerlIO のドキュメントを読んで理解することを
>お薦めします。

見逃してました。

>open($fh,":raw:utf8",...) will construct a "binary" stream, but then
>enable UTF-8 translation.

これがヒントかな。確かに

%type test1.pl
open(FILE, ">encoding(UTF-32BE)", "test.utf32");
print FILE "\n";

%type test2.pl
open(FILE, ">:raw:encoding(UTF-32BE):crlf", "test.utf32");
print FILE "\n";

%perl test1.pl & dump -h test.utf32
00000000  00 00 00 0D 0A         -

%perl test2.pl & dump -h test.utf32
00000000  00 00 00 0D 00 00 00 0A-

%

うまくいきました。ありがとうございます。
わかってしまえばおもしろいと思ったけど、知らないとはまりそう。
-- 
泥造 FZH01112@...