From: Ævar Arnfjörð Bjarmason Date: Wed, 06 Oct 2010 23:03:16 GMT Subject: Re: [PATCHv5 06/17] gitweb/lib - Simple select(FH) based output capture Message-ID: In-Reply-To: <1286402526-13143-7-git-send-email-jnareb@gmail.com> On Wed, Oct 6, 2010 at 22:01, Jakub Narebski wrote: > * The most important issue is that I/O "layers" (PerlIO), like ':utf8' >  or ':raw', are *already applied* to the output that is captured. >  This means that captured output is *always* in binary (':raw') mode. >  In Perl 6 language it means that data returned by capturing engine >  is an equivalent of Buf, a collection of bytes, whether Buf or Str >  (a colection of logical characters) is printed. > +       # note: this does not cover all cases > +       binmode select(), ':utf8' > +               if ((PerlIO::get_layers($self->{'oldfh'}))[-1] eq 'utf8'); I'm not sure but maybe we want to use ":Encoding(UTF-8)" everywhere in this series where you've used ":utf8". I.e. use the Encoding UTF-8 layer instead of the internal utf8 layer. It's more strict, see perldoc Encode's "UTF-8 vs. utf8 vs. UTF8". But maybe we don't care.