[Mimedefang] MIME::Entity not handling Charset => 'utf-8' correctly?
Philip Prindeville
philipp_subx at redfish-solutions.com
Wed Feb 20 19:55:23 EST 2013
Should probably mention I'm running:
perl-MIME-Types-1.28-2.el6.noarch
perl-MIME-Lite-3.027-2.el6.noarch
perl-MIME-tools-5.427-4.el6.noarch
perl-MIME-Base32-1.02a-1.el6.noarch
mimedefang-2.73-3.el6.x86_64
perl-5.10.1-127.el6.x86_64
on CentOS 6.3.
On Feb 20, 2013, at 5:20 PM, Philip Prindeville <philipp_subx at redfish-solutions.com> wrote:
> Hi.
>
> I'm trying to generate a message as a footer in mimedefang-filter (in filter_end()) when I see certain message contents, but I'm running into what looks like a bug. I've reproduced it here:
>
> [philipp]$ cat test.pl
> #!/usr/bin/perl -w
>
> use strict;
> use warnings;
>
> use MIME::Entity;
> use MIME::QuotedPrint;
> use HTML::Entities;
>
> my $string = decode_qp("Ellipsis=E2=80=A6\n");
>
> utf8::upgrade($string);
>
> print "string: ", $string;
>
> print "hex: ", unpack('H*', $string), "\n";
>
> my $msg = encode_entities($string, '"<>&');
>
> my @strings = (
> "<html>\n",
> $msg,
> "</html>\n"
> );
>
>
> my $html = MIME::Entity->build(
> Top => 0,
> Type => 'text/html',
> Encoding => 'quoted-printable',
> Charset => 'utf-8',
> Data => [ @strings ],
> );
>
> print $html->as_string(), "\n";
>
> exit 0;
> [philipp]$ ./test.pl
> string: Ellipsis…
> hex: 456c6c6970736973e280a60a
> Content-Type: text/html; charset="utf-8"
> Content-Disposition: inline
> Content-Transfer-Encoding: quoted-printable
>
> <html>
> Ellipsis=C3=A2=C2=80=C2=A6
> </html>
>
> [philipp]$
>
>
> from what I can tell, if I do a Data::Dumper() on $html->bodyhandle()->{'MBS_Data'} then it looks like the 3 UTF characters (0xa280a8) have been converted into \x{a2}, \x{80}, \x{a8} instead… Which I don't understand, since I've explicitly called the Charset out as being 'utf-8'. It looks like the string is being interpreted as latin1, not utf8.
>
> What am I doing wrong?
>
> Thanks,
>
> -Philip
>
> _______________________________________________
> NOTE: If there is a disclaimer or other legal boilerplate in the above
> message, it is NULL AND VOID. You may ignore it.
>
> Visit http://www.mimedefang.org and http://www.roaringpenguin.com
> MIMEDefang mailing list MIMEDefang at lists.roaringpenguin.com
> http://lists.roaringpenguin.com/mailman/listinfo/mimedefang
More information about the MIMEDefang
mailing list