Term :: Readline:encoding-question

sid*_*com 4 terminal perl encoding readline

当我进入"Müller"时,屏幕上出现"M ?? ller".我怎么能解决这个问题?

#!/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
Run Code Online (Sandbox Code Playgroud)

Ala*_*avi 7

应用:utf8层的文件句柄STDINSTDOUT,并把它们作为参数传递到Term::ReadLine->new():

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

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