Perl - How to solve the trouble with encoding in windows console? -
trying use russian lettaz , console acts donkey, because not react on use utf8/utf-8 or cp1251 directives. encoding of text marked red colour don't know. knows how solve ? code listing below:
#!/usr/bin/perl -w use strict; use warnings; use tie::ixhash; tie %hash, "tie::ixhash"; %hash = ( 'шляпа' => 'серая', 'водка' => 'горькая', 'вобла' => 'вкусная'); print "В упорядоченной вставке список хеша такой:\n"; foreach $qwerty (keys %hash){ print " $qwerty\n"; } print "Кроме того, предметы обладают некоторыми свойствами:\n"; while((my($predmet, $opredelenie)) = each %hash){ print "$predmet $opredelenie","\n"; }
you need specify stdout encoding. script utf-8 encoded:
use strict; use warnings; #use tie::ixhash; use utf8; binmode stdout, ":encoding(cp866)"; %hash = ( 'шляпа' => 'серая', 'водка' => 'горькая', 'вобла' => 'вкусная' ); print "В упорядоченной вставке список хеша такой:\n"; foreach $qwerty ( keys %hash ) { print " $qwerty\n"; } print "Кроме того, предметы обладают некоторыми свойствами:\n"; while ( ( ( $predmet, $opredelenie ) ) = each %hash ) { print "$predmet $opredelenie", "\n"; }