[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Hebrew Under gbiff
On Tue, Dec 18, 2001, Dan Kenigsberg wrote about "Re: Hebrew Under gbiff":
> my $s = shift;
> my @spl = split('\?', $s);
>
> return $s if ($#spl != 3 || $spl[0] ne '=');
>
> ($_, $charset, $enc, $str) = @spl;
>
> #TODO: handle other encodings and charsets
> return $s if $charset ne 'WINDOWS-1255' or $enc ne 'Q';
Why check specificially if $charset is WINDOWS-1255? windows-1255,
iso-8559-8(-i)?, and a few other things would probably be ok for
your purposes too. I simply chose not to check it at all. Q also can be
lowercase, by the way.
>
> $accum = "";
> while ($str =~ s/\=(..)//) {$accum = $accum.chr(hex($1))}
You forgot to convert underscores (_) back to spaces. If I remember
correctly, this is specified in RFC 2047.
> P.S. Thanks to whomever taught me Perl. Any comment is welcome.
Hmm, I wonder who that was :)
Anyway, you're right that Perl is a little more suited for the job. As
soon as I realised I had to write a hextonum() function in AWK, I knew
it wasn't the right language for the job (but I didn't care - I can
write AWK at least twice as fast as I write Perl... An old dog *can* learn
new tricks, but he still knows the old tricks better...)
By the way, I bet there's already a Perl module on CPAN that does RFC 2047
conversions. Anybody care to check?
--
Nadav Har'El | Wednesday, Dec 19 2001, 4 Tevet 5762
nyh@math.technion.ac.il |-----------------------------------------
Phone: +972-53-245868, ICQ 13349191 |Despite the cost of living, have you
http://nadav.harel.org.il |noticed how it remains so popular?
=================================================================
To unsubscribe, send mail to linux-il-request@linux.org.il with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail linux-il-request@linux.org.il