Thursday, January 19, 2012

перевод текста на русский в perl http://xpoint.ru/forums/programming/perl/nursery/thread/43275.xhtml


Подскажите, пожалуйста, как сделать так, чтобы в perl текст можно ыбло писать на русском, при этом он не выглядел как закарючки
 Алексей Севрюков(198/1238)
М Перенесено из форума "Программирование::Perl::Разное"
спустя 4 часа 19 минут Таня
например
#!usr/bin/perl
print ("Nachalo programmi\n");
 и в черном окне будет написано по-английски Nachalo programmi
а если я сделаю так
#!usr/bin/perl
print ("начало программы\n");
то получится в черном окне вывода - 9\\**// - короче ерунда какая-то
а мне надо, чтобы вывелось по-русски
спустя 1 час 34 минуты Thirteensmay(14/137)
Таня Вы программу пишете в Windows ? Значит скорее всего она у вас в кодировке 1251, это стандартная кодировка для Windows, но так сложилось что черное окно (которое правильно называется консоль) в Windows работает в кодировке 866. Можно перекодировать строки при выводе, это делается различными способами, а можно переключить консоль чтобы она тоже работала в кодировке 1251, для этого вам надо запустить консоль отдельно: Пуск->Выполнить, в строке ввода набрать три буквы: cmd затем Enter или кн. ОК, появится консоль, затем уже в ней введите команду chcp 1251 это изменит кодировку консоли на 1251, однако этого недостаточно, к сожалению используемый для консоли по умолчанию шрифт Terminal несовместим c 1251, поэтому вам также надо изменить шрифт для консоли - кликните по системной иконке расположенной в самом верхнем левом углу шапки окна консоли (на этой иконке изображено на черном фоне C:\), в появившемся меню выберете пункт Свойства, далее на закладке Шрифт, выберите шрифт Lucida, затем нажмите кн. ОК и выберете "Сохранить свойства для др. окон с тем же именем". Все, после этого должно казать, НО !, естественно только в этом окне, в котором вы уже выполнили команду chcp 1251, в новых окнах консоли по умолчанию всеравно будет 866. Поэтому вашу программу надо запускать из уже настроенного (после chcp 1251) окна консоли. Чтобы запустить программу надо переместиться в папку где она (программа) находится и ввести ее имя после чего нажать Enter. Например: по умолчанию консоль откроется в С:\Documents and Settings\User а программа ваша лежит в С:\Temp и называется 1.pl Можно либо запустить ее сразу из С:\Documents and Settings\User> введя после этого приглашения системы: С:\Temp\1.pl и нажав Enter, либо последовательно выйти из папок User и Documents and Settings с помощью команд cd .., а затем зайти в папку Temp с помощьюcd temp, когда вы будете в С:\Temp тогда запустить программу будет достаточно набрав 1.pl и нажав Enter.
спустя 14 минут Thirteensmay(14/137)
Вы также можете сохранить текст вашей программы в кодировке 866 (DOS ASCII) с помощью стандартной Windows программы WordPad. Открыв ваш исходный текст и выбрав "Cохранить как". При открытии не забудьте выбрать Тип файлов: Все документы, а при сохранении: Текстовые документы DOS (в результате файл будет иметь расширение txt, естественно смените его на pl вручную). После этого ваша программа будет в кодировке 866 и в консоли будет отображаться без дополнительных ухищрений.
спустя 7 минут Thirteensmay(14/137)
Когда это все прочитаете и поймете что к чему, используйте строчку use encoding 'cp1251', STDOUT => 'cp866'; в начале вашей программы чтобы перл все это сделал за вас сам ;)
спустя 14 часов Thirteensmay(14/137)
Если будете использовать вышеуказанную строчку, учтите это: Как use encoding влияент на unpack? т.е. тут есть некоторые моменты.
спустя 9 минут

No comments:

Post a Comment