Term :: Readline: encoding-question - PullRequest
       7

Term :: Readline: encoding-question

4 голосов
/ 11 февраля 2011

Когда я ввожу «Мюллер», на экране появляется «Мюллер».Как я мог это исправить?

#!/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

1 Ответ

7 голосов
/ 11 февраля 2011

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

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

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