Perl Encode.pm cannot decode string with wide character

perl, unicode, utf-8

Solution

I had a similar problem. `$enc->decode( $octets, $check );` expects octets.

So put `Encode::_utf8_off($octets)` before. It made it work for me.

Problem

I was running a perl app which uses `/opt/local/lib/perl5/5.12.4/darwin-thread-multi-2level/Encode.pm` and issues an error Cannot decode string with wide characters at /opt/local/lib/perl5/5.12.4/darwin-thread-multi-2level/Encode.pm line 174. Line 174 of `Encode.pm` reads ``` sub decode($$;$) { my ( $name, $octets, $check ) = @_; return undef unless defined $octets; $octets .= '' if ref $octets; $check ||= 0; my $enc = find_encoding($name); unless ( defined $enc ) { require Carp; Carp::croak("Unknown encoding '$name'"); } my $string = $enc->decode( $octets, $check ); # line 174 $_[1] = $octets if $check and !ref $check and !( $check & LEAVE_SRC() ); return $string; } ``` Any workaround?

Original source