Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Кириллический Hello world на perl(win) 
:(
    Опции темы
Ivan0x32
Дата 24.5.2010, 22:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 4.2.2010

Репутация: нет
Всего: нет



Нет ли у кого валидного, работающего примера подобной программы? Мне страх как нужно во первых выводить на консоль кириллические данные.
Пользуюсь Notepad2, он вроде как использует по дефолту ANSI кодировку для файлов, может быть из за этого скрипты выдают кракозябры? Хотя я пробовал и так: 
Код

#! /usr/bin/perl
use locale;
use POSIX qw (locale_h);
setlocale(LC_CTYPE, 'ru_RU.ANSI');
print "Привет Мир!";

Но все тоже самое. Перекодировал файл в CP1251(и только после этого написал последнюю строку скрипта, т.е. Привет, Мир! был введен в уже новой кодировке - не ANSI) и все тоже самое, только кракозябры другие стали... 

PS: Интерпретатор  - Strawberry Perl, хотя это вряд ли меняет дело.  
PM MAIL   Вверх
ginnie
Дата 25.5.2010, 11:42 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 6.1.2008
Где: Москва

Репутация: 38
Всего: 49



У меня работает так:

Код

#! /usr/bin/perl
use strict;
use warnings;
use encoding 'cp1251', STDOUT => 'cp866';
print "Привет Мир!";



--------------------
Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг)
PM MAIL Skype Jabber   Вверх
ramus
Дата 25.5.2010, 21:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 53
Регистрация: 21.2.2008

Репутация: 1
Всего: 1



Еще можно консоль виндовс (cmd.exe) перевести в кодировку виндовс ;)

Я использую для этого батник (кодировка русских букв WIN1251) с встроенным перл кодом (позаимствовал у ActivePerl)

Код

@rem = '--*-Perl-*--
@echo off
chcp 1251>nul
if "%OS%" == "Windows_NT" goto WinNT
perl -x -S "%0" %1 %2 %3 %4 %5 %6 %7 %8 %9
goto endofperl
:WinNT
perl -x -S %0 %*
if NOT "%COMSPEC%" == "%SystemRoot%\system32\cmd.exe" goto endofperl
if %errorlevel% == 9009 echo You do not have Perl in your PATH.
if errorlevel 1 goto script_failed_so_exit_with_non_zero_val 2>nul
goto endofperl
@rem ';
#!/usr/local/bin/perl -w
#line 15


use warnings;
use strict;

print "Привет\n";

__END__
:endofperl


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0757 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.