2011-02-11 3 views
4

Когда я вхожу в «Müller», на экране появляется «M ?? ller». Как я могу это исправить?Term :: Readline: encoding-question

#!/usr/bin/env perl 
use warnings; 
use 5.012; 
use Term::ReadLine; 

my $term = Term::ReadLine->new('dummy'); 

my $con = $term->readline(': '); 

say $con; 

# On the screen: 
# : M��ller                                     
# Müller 

ответ

7

Нанесите :utf8 слой дескрипторы файлов STDIN и STDOUT, и передать их в качестве аргументов Term::ReadLine->new():

binmode STDIN, ':utf8'; 
binmode STDOUT, ':utf8'; 

my $term = Term::ReadLine->new('dummy', \*STDIN, \*STDOUT);