diff options
author | Eric Wong <e@80x24.org> | 2014-04-28 04:50:17 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2014-04-28 04:51:46 +0000 |
commit | 59e7af124580f46bdb2dec21273607599ba1e8f9 (patch) | |
tree | 8c62802d9a9881d545a2d1493b9f8db4f5c6fbd8 /lib | |
parent | 31b13cdcb3ab2a4f9332f2aab10fdda7dbbe296c (diff) | |
download | public-inbox-59e7af124580f46bdb2dec21273607599ba1e8f9.tar.gz |
uri_escape => uri_escape_utf8
We should be able to deal with URIs with non-ASCII characters in them. I only found this problem when looking at archives with non-English spam :x
Diffstat (limited to 'lib')
-rw-r--r-- | lib/PublicInbox/Hval.pm | 4 | ||||
-rw-r--r-- | lib/PublicInbox/View.pm | 11 |
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>'; |