Hi All,
I had a small problem with an email subject in UTF8. So I fixed and
would like to submit back a diff.
first of all it was not encoded properly since encode_mimewords wants
a bytes an not widechar string as an input. And second
encode_mimewords eats a space when it encodes so
allwordsaregluedtogheter after you encode it, so I added space to be
included in the regexp.
Boris./
--- /home/xeon/soft/otrss/Kernel/System/Email.pm Wed Jan 19
22:06:25 2005
+++ /home/xeon/soft/otrs/Kernel/System/Email.pm Sat Aug 27
21:15:12 2005
@@ -224,7 +224,7 @@
# do some encode
foreach (qw(From To Cc Bcc Subject)) {
if ($Header{$_} && $Param{Charset}) {
- $Header{$_} = encode_mimewords($Header{$_}, Charset =>
$Param{Charset}) || '';
+ $Header{$_} = encode_mimewords(Encode::encode($Param
{Charset},$Header{$_}), Charset => $Param{Charset}) || '';
}
}
$Header{'X-Mailer'} = $Self->{ConfigObject}->Get('Product')."
Mail Service (".$Self->{ConfigObject}->Get('Version').")";
--- /home/xeon/soft/otrss/Kernel/cpan-lib/MIME/Words.pm Tue Feb 15
16:43:51 2005
+++ /home/xeon/soft/otrs/Kernel/cpan-lib/MIME/Words.pm Sun Sep 4
17:15:56 2005
@@ -117,7 +117,7 @@
# almost, but not exactly, quoted-printable. :-P
sub _encode_Q {
my $str = shift;
- $str =~ s{([_\?\=$NONPRINT])}{sprintf("=%02X", ord($1))}eog;
+ $str =~ s{([ _\?\=$NONPRINT])}{sprintf("=%02X", ord($1))}eog;
$str;
}
@@ -310,7 +310,7 @@
### We limit such words to 18 characters, to guarantee that the
### worst-case encoding give us no more than 54 + ~10 < 75
characters
my $word;
- $rawstr =~ s{([a-zA-Z0-9\x7F-\xFF]{1,18})}{ ### get next "word"
+ $rawstr =~ s{([a-zA-Z0-9\x7F-\xFF]+\s*)}{ ### get next "word"
$word = $1;
(($word !~ /[$NONPRINT]/o)
? $word ### no unsafe
chars
_______________________________________________
OTRS mailing list: dev - Webpage: http://otrs.org/
Archive: http://lists.otrs.org/pipermail/dev
To unsubscribe: http://lists.otrs.org/cgi-bin/listinfo/dev