in reply to Re^3: UTF8 hash key downgraded when assigned
in thread UTF8 hash key downgraded when assigned

Yes. You told Perl to expect UTF-8, but didn't provide it. Notepad can "Save As" UTF-8.

  • Comment on Re^4: UTF8 hash key downgraded when assigned

Replies are listed 'Best First'.
Re^5: UTF8 hash key downgraded when assigned
by syphilis (Archbishop) on Dec 01, 2018 at 05:18 UTC
    Notepad can "Save As" UTF-8

    Yep, got it. Thanks. (Didn't notice the encoding options.)
    The error I was originally getting with gibus' script then evaporates, and I see the same behaviour as gibus reported.
    Again, the behaviour that gibus wanted to see is achieved by assigning the string clé to a variable:
    #!/usr/bin/perl use strict; use warnings; use utf8; use Devel::Peek; use Data::Dumper; $Data::Dumper::Useqq = 1; my $s = 'clé'; my %hash = ( $s => 0, ); my $key = (keys %hash)[0]; Dump($key); print Dumper($key); $hash{$s} = 1; $key = (keys %hash)[0]; Dump($key); print Dumper($key); __END__ Outputs: SV = PV(0x89d7b8) at 0x339d80 REFCNT = 1 FLAGS = (POK,pPOK,UTF8) PV = 0x8992e8 "cl\303\251"\0 [UTF8 "cl\x{e9}"] CUR = 4 LEN = 5 $VAR1 = "cl\x{e9}"; SV = PV(0x89d7b8) at 0x339d80 REFCNT = 1 FLAGS = (POK,pPOK,UTF8) PV = 0x2549998 "cl\303\251"\0 [UTF8 "cl\x{e9}"] CUR = 4 LEN = 5 $VAR1 = "cl\x{e9}";
    But I don't know how relevant that is.

    Cheers,
    Rob