泥造です。
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@...