Yes, but when i use encode_utf8() to convert already known value from string to octets before comparing with newly posted value I can't see any difference berween values.
my $par1 = $posted_value; # not marked as utf8 yet
my $par2 = $already_known_value; # marked as utf8
my $res = 0;
When params are converted to octets and then compared result is - equal.
# code1 - compare octets
$par1 = Encode::encode_utf8($par1) if Encode::is_utf8($par1);
$par2 = Encode::encode_utf8($par2) if Encode::is_utf8($par2);
$res = ($par1 eq $par2) ? 1 : 0;
# $res now contain 1 - $par1 and $par2 are equal
But when try convert to string and compare after, then result is - not equal because posted value is still not mared as utf8. I allready use the same form with the same data for posting.
# code2 - compare strings
$par1 = Encode::decode_utf8($par1) if !Encode::is_utf8($par1);
$par2 = Encode::decode_utf8($par2) if !Encode::is_utf8($par2);
$res = ($par1 eq $par2) ? 1 : 0;
# $res now contain 0 - $par1 and $par2 are not equal