Re: Git-mediawiki : Encoding problems in perl
- From
Jeff King <peff@peff.net>
- Date
- Jun 8, 2011, 15:45 UTC
- Message-ID
- <20110608154513.GB8759@sigill.intra.peff.net>
- In-Reply-To
- <vpqhb8049m3.fsf@bauges.imag.fr>
On Wed, Jun 08, 2011 at 05:37:56PM +0200, Matthieu Moy wrote:
Show 14 quoted lines
> The actual code is:
>
> my $file_content = `git cat-file -p $sha1`;
> chomp($file_content);
> // ...
> $mw->edit( {
> action => 'edit',
> summary => $_[1],
> title => $title,
> text => $file_content,
> });
>
> If the file is UTF-8 encoded, the page sent to the wiki is
> double-utf8-encoded.I think there might be a way to say "all descriptors are utf8"; I don't know if that would apply to pipes from backtick commands or not. I'm also not sure if it would interfere with something like Mediawiki::API talking over the socket.
Show 10 quoted lines
> That's not exactly it, since we read the output of "git cat-file", not > an actual file. > > But something along the lines of: > > open(my $git, "-|:encoding(UTF-8)", "git cat-file -p $sha1"); > my $file_content = <$git>; > close($git); > > may do it.
Yeah, I think that's the cleanest solution (assuming it works. :) ).
-Peff