Подскажите, пожалуйста, как сделать так, чтобы в perl текст можно ыбло писать на русском, при этом он не выглядел как закарючки
например
#!usr/bin/perl
print ("Nachalo programmi\n");
и в черном окне будет написано по-английски Nachalo programmi
а если я сделаю так
#!usr/bin/perl
print ("начало программы\n");
то получится в черном окне вывода - 9\\**// - короче ерунда какая-то
а мне надо, чтобы вывелось по-русски
#!usr/bin/perl
print ("Nachalo programmi\n");
и в черном окне будет написано по-английски Nachalo programmi
а если я сделаю так
#!usr/bin/perl
print ("начало программы\n");
то получится в черном окне вывода - 9\\**// - короче ерунда какая-то
а мне надо, чтобы вывелось по-русски
Таня Вы программу пишете в 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.Вы также можете сохранить текст вашей программы в кодировке 866 (DOS ASCII) с помощью стандартной Windows программы WordPad. Открыв ваш исходный текст и выбрав "Cохранить как". При открытии не забудьте выбрать Тип файлов: Все документы, а при сохранении: Текстовые документы DOS (в результате файл будет иметь расширение txt, естественно смените его на pl вручную). После этого ваша программа будет в кодировке 866 и в консоли будет отображаться без дополнительных ухищрений.
Когда это все прочитаете и поймете что к чему, используйте строчку
use encoding 'cp1251', STDOUT => 'cp866';
в начале вашей программы чтобы перл все это сделал за вас сам ;)Если будете использовать вышеуказанную строчку, учтите это: Как use encoding влияент на unpack? т.е. тут есть некоторые моменты.
No comments:
Post a Comment