#!/usr/bin/env perl use warnings; use strict; use 5.10.1; use Encode; use Term::ReadKey; use Encode::Locale; use Term::ReadLine; #Encode::Locale::reinit('cp850'); print `chcp` if $^O eq 'MSWin32'; 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 ""; ReadMode 'cbreak'; $| = 1; print ': '; my $key = ReadKey(); $key = decode( 'console_in', $key ) if $^O eq 'MSWin32'; say "\nReadKey|$key|"; ReadMode 'restore'; say "========================="; print ': '; my $in = readline; chomp $in; say 'readline[' . $in . ']'; say "========================="; my $term = Term::ReadLine->new( 'Text' ); $term->ornaments( 0 ); my $con = $term->readline( ': ' ); $con = decode( 'console_in', $con ); say $term->ReadLine . "{$con}";