Xpoint
   [напомнить пароль]

перевод текста на русский в perl

Метки: [без меток]
[удл]
2008-09-29 11:49:04 [обр] Таня[досье]
Подскажите, пожалуйста, как сделать так, чтобы в perl текст можно ыбло писать на русском, при этом он не выглядел как закарючки
спустя 45 минут [обр] Алексей Севрюков(198/1280)[досье]
Подробнее, где Вы пишите текст и где он выглядит закорючками?
спустя 12 секунд [обр] Алексей Севрюков(198/1280)[досье]
М Перенесено из форума "Программирование::Perl::Разное"
спустя 4 часа 19 минут [обр] Таня[досье]
например
#!usr/bin/perl
print ("Nachalo programmi\n");
 и в черном окне будет написано по-английски Nachalo programmi
а если я сделаю так
#!usr/bin/perl
print ("начало программы\n");
то получится в черном окне вывода - 9\\**// - короче ерунда какая-то
а мне надо, чтобы вывелось по-русски
спустя 1 час 34 минуты [обр] Thirteensmay(15/157)[досье]
Таня[досье] Вы программу пишете в 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(15/157)[досье]
Вы также можете сохранить текст вашей программы в кодировке 866 (DOS ASCII) с помощью стандартной Windows программы WordPad. Открыв ваш исходный текст и выбрав "Cохранить как". При открытии не забудьте выбрать Тип файлов: Все документы, а при сохранении: Текстовые документы DOS (в результате файл будет иметь расширение txt, естественно смените его на pl вручную). После этого ваша программа будет в кодировке 866 и в консоли будет отображаться без дополнительных ухищрений.
спустя 7 минут [обр] Thirteensmay(15/157)[досье]
Когда это все прочитаете и поймете что к чему, используйте строчку use encoding 'cp1251', STDOUT => 'cp866'; в начале вашей программы чтобы перл все это сделал за вас сам ;)
спустя 14 часов [обр] Thirteensmay(15/157)[досье]
Если будете использовать вышеуказанную строчку, учтите это: Как use encoding влияент на unpack? т.е. тут есть некоторые моменты.
спустя 27 минут [обр] Иванов Михаил aka Ivanych(16/70)[досье]

Thirteensmay[досье], Вы молодец, все правильно написали.

Но божемой! Совершите уже наконец над собой усилие и начните разделять текст на абзацы. Это же читать невозможно, весь текст в одну строку.

спустя 2 часа 34 минуты [обр] Таня[досье]
 Thirteensmay, я Вас обожаю!! =)
все работает и пищется в консоле =))) как надо
спустя 9 минут [обр] Алексей Севрюков(198/1280)[досье]
Таня[досье] Ставьте PC-BSD, Ubuntu или другой одомашнейнный дистрибутив нормальной ОС ))) Так в консоли можно кодировку менять совсем просто. Виндовая консоль это тоже умеет, но как то через попу.
спустя 30 минут [обр] Таня[досье]
=) cпасибо, Алексей
Powered by POEM™ Engine Copyright © 2002-2005