#!perl use warnings; use strict; use 5.10.0; use utf8; use Encode; use Devel::Peek; use Encode::Locale; #Encode::Locale::reinit('utf-8'); binmode STDIN, ':encoding(console_in)'; binmode STDOUT, ':encoding(console_out)'; binmode STDERR, ':encoding(console_out)'; use Term::ReadKey; ReadMode 3; my $c = ReadKey; $c = decode( 'console_in', $c ); Dump $c; say "[$c]"; ReadMode 0; use Win32::Console; my $in = Win32::Console->new( STD_INPUT_HANDLE ); $in->Mode( ENABLE_PROCESSED_INPUT ); my $char = $in->InputChar(); $char = decode( 'console_in', $char ); Dump $char; say "{$char}";