Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > Повторяются окончания


Автор: gvyefime 13.12.2011, 05:20
При выводе русского текста .  STDOUT => 'utf-8';
Код

print  "удалить запись";


выводит 

удалить запись записьисььь 

та же ситуация когда  выводишь результат поиска 

но там эти повторения окончаний еще и по строкам переносятся. 

В чем причина?


Автор: arto 13.12.2011, 08:20
ос?

Автор: gvyefime 13.12.2011, 08:28
Цитата(arto @ 13.12.2011,  08:20)
ос?

Windows XP

Автор: Pfailed 13.12.2011, 19:07
Цитата(gvyefime @  13.12.2011,  05:20 Найти цитируемый пост)
STDOUT => 'utf-8'

Это что?

Куда выводите?

Автор: gvyefime 14.12.2011, 01:35
в командную строку .... 
Код

use encoding 'cp1251', STDOUT => 'utf-8';
print "повторяется";


в командной строке chcp 65001

Шрифт Lucida , только так выводит русский язык, но в результате такой казус

повторяетсяяетсятсяяя

Автор: Pfailed 14.12.2011, 18:04
А если 
Код

use encoding 'cp1251', STDOUT => 'utf-8';
print "повторяется\n";

Командная строка cmd или power shell?

Автор: Pfailed 14.12.2011, 18:56
У меня тоже повторяется. Могу лишь предположить, что виндовая консоль не поддерживает в должной мере юникод.

Автор: gvyefime 15.12.2011, 00:45
Цитата(Pfailed @ 14.12.2011,  18:04)

Командная строка cmd или power shell?

cmd

Автор: myth777 15.12.2011, 13:49
Маздаевская консоль работает в кодировке cp866 по умолчанию.
Попробуйте вывести ваш текст в кодировке "cp866". Если изначально у вас в utf воспользуйтесь
Код

 Encode::from_to($str, 'utf8', 'cp866'); 

Должно помочь.

Автор: gvyefime 20.12.2011, 02:34
Всем спасибо
Сохраняло в файл нормально, поэтому с выводом в cmd не стал заморачиваться
Добавил пробелы в конце.. они и повторяются.... т.е на экране так как требовали.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)