Thread Windows: InputChar mit mulit-byte Encoding (4 answers)
Opened by Kuerbis at 2014-07-11 09:18

Kuerbis
 2014-07-11 20:56
#176392 #176392
User since
2011-03-20
947 Artikel
BenutzerIn
[default_avatar]
Mit

Code (perl): (dl )
1
2
3
4
5
use Term::ReadKey;

my $c = ReadKey;
Dump $c;
say "[$c]";


hat es funktioniert (Mit einem normalen <STDIN> auch).

Es ist
Code: (dl )
type Datei_mit_Smily.txt | perl.pl
.

Mit

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
use Term::ReadKey;
use Encode::Locale;

ReadMode 3;
my $c = ReadKey;
$c = decode( 'console_in', $c );
Dump $c;
say "[$c]";
ReadMode 0;


gabs einen Fehler:
Code: (dl )
GetConsoleMode failed, LastError=|6| at C:/strawberry/perl/vendor/lib/Term/ReadKey.pm line 309.



Dieses Script hat mit dieser Methode nicht funktioniert:

Code (perl): (dl )
1
2
3
4
5
6
7
use Win32::Console;
my $in = Win32::Console->new( STD_INPUT_HANDLE );
$in->Mode( ENABLE_PROCESSED_INPUT );
my $char = $in->InputChar();
#$char = decode( 'console_in', $char );
Dump $char;
say "{$char}";



Code: (dl )
1
2
3
4
5
6
C:\Users\mm>type multibyte.txt | perl.pl
SV = NULL(0x0) at 0x12fe81c
REFCNT = 1
FLAGS = (PADMY)
Use of uninitialized value $char in concatenation (.) or string at C:\Users\mm\perl.pl line 23.
{}

View full thread Windows: InputChar mit mulit-byte Encoding