From 059671fc4562a6e4dd55e092ec9a31038b14ef45 Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawlxhTpXjVrFtgk7H7La4U7dZSob-r0680U" Date: Fri, 13 Jan 2012 19:00:13 -0400 Subject: [PATCH] --- doc/bugs/UTF-8_in_attachment_filenames.mdwn | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 doc/bugs/UTF-8_in_attachment_filenames.mdwn diff --git a/doc/bugs/UTF-8_in_attachment_filenames.mdwn b/doc/bugs/UTF-8_in_attachment_filenames.mdwn new file mode 100644 index 000000000..6e79a4e06 --- /dev/null +++ b/doc/bugs/UTF-8_in_attachment_filenames.mdwn @@ -0,0 +1,15 @@ +I have ikiwiki_3.20111229 installed on Debian Squeeze (Perl 5.10.1, UTF-8 locale). The attachment plugin mangles UTF8-encoded attachment filenames if the name contains multibyte characters, e.g. "lää.png" becomes "lää.png". Apparently glob returns byte strings which are subject to implicit upgrading when concatenated with Perl strings. The following patch fixes the problem for me: + +---- + + diff -r -U 1 a/attachment.pm b/attachment.pm + --- a/attachment.pm 2012-01-13 23:07:29.000000000 +0200 + +++ b/attachment.pm 2012-01-13 23:33:07.000000000 +0200 + @@ -274,2 +274,3 @@ + foreach my $filename (glob("$dir/*")) { + + $filename=Encode::decode_utf8($filename); + next unless -f $filename; + @@ -347,2 +348,3 @@ + foreach my $file (glob("$dir/*")) { + + $file = Encode::decode_utf8($file); + next unless -f $file; -- 2.39.5