use strict; use warnings; use feature qw( say ); use Encode qw( ); my $orig = "\xE8\xAB\x86\x0A"; utf8::encode( my $enc_once = $orig ); utf8::encode( my $enc_twice = $enc_once ); say('length = ', length($orig)); { say("Using utf8::decode"); utf8::decode( my $dec_once = $enc_twice ); utf8::decode( my $dec_twice = $dec_once ); say('length = ', length($dec_twice)); say($orig eq $dec_twice ? 'ok' : 'not ok'); } { say("Using Encode::decode"); my $dec_once = Encode::decode('UTF-8', $enc_twice); my $dec_twice = Encode::decode('UTF-8', $dec_once); say('length = ', length($dec_twice)); say($orig eq $dec_twice ? 'ok' : 'not ok'); }
length = 4 Using utf8::decode length = 4 ok Using Encode::decode length = 4 ok
Works fine for me, both ways.
I'll take your word for it that you are experiencing a problem, but I'm not going to comb through the hundreds of lines you posted to find what it is. If this doesn't help, please post a minimal demonstration of the problem.
In reply to Re: utf8::decode vs. Encode::decode with regard to the length function
by ikegami
in thread utf8::decode vs. Encode::decode with regard to the length function
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |