#!/usr/bin/env perl use warnings; use strict; use 5.10.1; use Encode; use Term::ReadKey; use Encode::Locale; Encode::Locale::reinit('cp850'); # set to standard CP850 =Latin1 binmode STDOUT, ":encoding(console_out)"; binmode STDIN, ":encoding(console_in)"; say $Encode::Locale::ENCODING_LOCALE; say $Encode::Locale::ENCODING_LOCALE_FS; say $Encode::Locale::ENCODING_CONSOLE_OUT; say $Encode::Locale::ENCODING_CONSOLE_IN; say ""; do { ReadMode 'cbreak'; my $key = ReadKey(); say "|$key|"; $key = decode( 'console_out', $key ); say "|$key|"; ReadMode 'restore'; }; do { my $in = ; chomp $in; say "[$in]"; };