about summary refs log tree commit homepage
path: root/lib/PublicInbox
diff options
context:
space:
mode:
Diffstat (limited to 'lib/PublicInbox')
-rw-r--r--lib/PublicInbox/Hval.pm4
-rw-r--r--lib/PublicInbox/View.pm11
2 files changed, 8 insertions, 7 deletions
diff --git a/lib/PublicInbox/Hval.pm b/lib/PublicInbox/Hval.pm
index 1a83cf10..a93e8c24 100644
--- a/lib/PublicInbox/Hval.pm
+++ b/lib/PublicInbox/Hval.pm
@@ -7,7 +7,7 @@ use strict;
 use warnings;
 use fields qw(raw);
 use Encode qw(find_encoding);
-use URI::Escape qw(uri_escape);
+use URI::Escape qw(uri_escape_utf8);
 
 my $enc_ascii = find_encoding('us-ascii');
 
@@ -52,7 +52,7 @@ sub ascii_html {
 }
 
 sub as_html { ascii_html($_[0]->{raw}) }
-sub as_href { ascii_html(uri_escape($_[0]->{raw})) }
+sub as_href { ascii_html(uri_escape_utf8($_[0]->{raw})) }
 
 sub raw {
         if (defined $_[1]) {
diff --git a/lib/PublicInbox/View.pm b/lib/PublicInbox/View.pm
index 663eff5b..c6ecee6e 100644
--- a/lib/PublicInbox/View.pm
+++ b/lib/PublicInbox/View.pm
@@ -4,7 +4,7 @@ package PublicInbox::View;
 use strict;
 use warnings;
 use PublicInbox::Hval;
-use URI::Escape qw/uri_escape/;
+use URI::Escape qw/uri_escape_utf8/;
 use Encode qw/find_encoding/;
 use Encode::MIME::Header;
 use Email::MIME::ContentType qw/parse_content_type/;
@@ -213,12 +213,13 @@ sub html_footer {
 
         my $subj = $mime->header('Subject') || '';
         $subj = "Re: $subj" unless $subj =~ /\bRe:/;
-        my $irp = uri_escape($mime->header_obj->header_raw('Message-ID') || '');
+        my $irp = uri_escape_utf8(
+                        $mime->header_obj->header_raw('Message-ID') || '');
         delete $cc{$to};
-        $to = uri_escape($to);
-        $subj = uri_escape($subj);
+        $to = uri_escape_utf8($to);
+        $subj = uri_escape_utf8($subj);
 
-        my $cc = uri_escape(join(',', values %cc));
+        my $cc = uri_escape_utf8(join(',', values %cc));
         my $href = "mailto:$to?In-Reply-To=$irp&Cc=${cc}&Subject=$subj";
 
         '<a href="' . ascii_html($href) . '">reply</a>';