Как включить(подвязать) отображение русских букв в Perl в командной ст

  • Автор темы Redee
  • Дата начала
R

Redee

#1
Как включить(подвязать) отображение русских букв в Perl в командной строке виндовс?
При запуске программы Perl, установлен ActivePerl (команд. строка виндовс -- пуск - выполнить - cmd) место русских символов выдает иероглифы, вот исходник >>>

Код:
#!/usr/bin/perl -w

print "Величина месячного взноса?";
$pmt=<STDIN>;
chomp $pmt;

print "Годовая процентная ставка? (пример 7% - 0.07)";
$interest=<STDIN>;
chomp $interest;

print "Период депозита в месяцах?";
$mons=<STDIN>;
chomp $mons;

# В формуле заложена месячная процентная ставка
$interest/=12;

$total=$pmt*((1+$interest)**($mons-1))/$interest;

print "После $mons месяцев при ежемесячной ставке $interest\n";
print "у вас будет сумма $total.\n";
Вот наглядно что выходит>>>


З.Ы. Только начал изучать, объясните пожалуйста поподробнее.
 
B

brunchik

#2
Форум программистов называется.115 просмотров и заданый вопрос в прошлом году.А ответов 0.Я то же задал и у меня 37 просмотров и тишина.А попробуй сейчас мат напиши так все сразу проснутся.Я сам решу свой вопрос и тут все еще будет тишина.
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Используй модули:
Код:
use locale;
use encoding 'cp1251';
У меня так же было.Я один раз объявил и теперь у меня без вызова этих модулей все с русским Ок.
Тут видимо этого не знают!
 
T

TimeDontWait

#3
Ну если вы знаете, так помогите. Здесь никто никому ничего не должен.
 
R

Redee

#4
Короче решил так, сначала код стал таким >>>
Код:
#!/usr/bin/perl -w
use Encode qw(encode decode);
$content = "Величина месячного взноса?";
$content = Encode::encode('cp866', Encode::decode('cp1251', $content));
print $content;
$pmt=<STDIN>;
chomp $pmt;

$content = "Годовая процентная ставка? (пример 7% - 0.07)";
$content = Encode::encode('cp866', Encode::decode('cp1251', $content));
print $content;
$interest=<STDIN>;
chomp $interest;

$content = "Период депозита в месяцах?";
$content = Encode::encode('cp866', Encode::decode('cp1251', $content));
print $content;
$mons=<STDIN>;
chomp $mons;

# В формуле заложена месячная процентная ставка
$interest/=12;

$total=$pmt*((1+$interest)**($mons-1))/$interest;

$content = "После";
$content = Encode::encode('cp866', Encode::decode('cp1251', $content));
$content2 = "месяцев при ежемесячной ставке";
$content2 = Encode::encode('cp866', Encode::decode('cp1251', $content2));
print "$content $mons $content2 $interest\n";

$content = "У вас будет сумма";
$content = Encode::encode('cp866', Encode::decode('cp1251', $content));
print "$content $total.\n";
Потом нашел такой способ >>>
Код:
#!/usr/bin/perl -w
use Encode qw(encode decode);

sub print_enc {
my $text = shift; # получили текст
my $from = shift||"cp1251"; # если нужно указали другую кодировку или по умолчанию
my $to = shift||"cp866"; # если нужно указали другую кодировку или по умолчанию
$text = Encode::encode($to, Encode::decode($from, $text));
print $text;
}

print_enc "Величина месячного взноса?";
$pmt=<STDIN>;
chomp $pmt;

print_enc "Годовая процентная ставка? (пример 7% - 0.07)";
$interest=<STDIN>;
chomp $interest;

print_enc "Период депозита в месяцах?";
$mons=<STDIN>;
chomp $mons;

# В формуле заложена месячная процентная ставка
$interest/=12;

$total=$pmt*((1+$interest)**($mons-1))/$interest;

print_enc "После $mons месяцев при ежемесячной ставке $interest
у вас будет сумма $total.\n";
З.Ы. инфу рыл здесь >>>
http://forum.vingrad.ru/forum/topic-318912...сские-perl.html

и здесь >>>
http://forum.vingrad.ru/topic-139072/view-.../p-1050192.html