about summary refs log tree commit homepage
path: root/lib/PublicInbox/ViewVCS.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/PublicInbox/ViewVCS.pm')
-rw-r--r--lib/PublicInbox/ViewVCS.pm4
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/PublicInbox/ViewVCS.pm b/lib/PublicInbox/ViewVCS.pm
index 5fd46610..de8600ee 100644
--- a/lib/PublicInbox/ViewVCS.pm
+++ b/lib/PublicInbox/ViewVCS.pm
@@ -157,9 +157,11 @@ sub show_commit_start { # ->psgi_qx callback
         }
         my $patchid = (split(/ /, $$bref))[0]; # ignore commit
         $ctx->{-q_value_html} = "patchid:$patchid" if defined $patchid;
-        open my $fh, '<:utf8', "$ctx->{-tmp}/h" or
+        open my $fh, '<', "$ctx->{-tmp}/h" or
                 die "open $ctx->{-tmp}/h: $!";
         chop(my $buf = do { local $/ = "\0"; <$fh> });
+        utf8::decode($buf);
+        utf8::valid($buf) or utf8::encode($buf); # non-UTF-8 commits exist
         chomp $buf;
         my ($P, $p);
         ($P, $p, @{$ctx->{cmt_info}}) = split(/\n/, $buf, 9);