perl-unicode

Re[2]: Encode::compat 0.01 says "Unsupported conversion"

2002-09-25 11:30:49
Hi Autrijus,

thanks for reflecting this issue so quickly! Applying your new v0.02
to my sample code resulted in

Modification of a read-only value attempted at 
<dir_to_perls_lib>/Encode/compat/common.pm line 86.

Line 86 is the new implementation to normalize 'utf8' to 'utf-8':

     my ($from, $to) = map { s/^utf8$/utf-8/i; lc($_) } ($_[1], $_[2]);

But this fails due to the attempt to change $_[1]. I fixed this by
replacing this line by

        my ($from, $to) = @_[1, 2];
        ($from, $to) = map {
                s/^utf8$/utf-8/i;
                s/^shiftjis$/shift_jis/i;
                lc;
        } ($from, $to);

This also allows 'shiftjis' to be used instead of 'shift_jis'. Now
Encode::compat works like a charme with Perl 5.6.1, just like Encode
in 5.8! Great!

best,
rob.


--
On Tue, 24 Sep 2002, 10:47 GMT+08 (04:47 local time) Autrijus Tang
wrote:

On Sun, Sep 22, 2002 at 10:08:15PM +0200, Robert Allerstorfer wrote:
unlike stated in my previous 2 postings from the previous thread, I finally
commented everything within

if ($] >= 5.007001 or $INC{'Encode.pm'}) {
    # nothing happens -- Encode.pm already available.
    $INC{'Encode.pm'} = __FILE__;
    require Encode::compat::common;
    require Encode::compat::5006001;
}

Oops, that's just for debug use.  Stupid me.  0.02 released.

I have tested it with the following CGI code that should print the "?"
character UTF-8 encoded and the byte numbers that represent it (C3 and
A4):

        use Encode::compat;
        use Encode;
        my $string = "?";
        Encode::from_to($string, "iso-8859-1", "utf8");

Forgot to normalize 'utf8' to 'utf-8'.

Please grab the new tarball here:
    http://www.autrijus.org/Encode-compat-0.02.tar.gz

/Autrijus/

<Prev in Thread] Current Thread [Next in Thread>