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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запись в файл по-русски 
V
    Опции темы
Vahgo
Дата 19.2.2007, 22:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Хочу записать в файл слова русскими буквами. Написал подпрограмму (слова передаются в неё)
Код

sub text 
{
open(TEXT,">:encoding(cp1251)","text.txt") || die;
foreach (@_) {
print TEXT "$_"; 
}
print TEXT "\n";
close (TEXT);
}
1;

которая должна вроде как все это сделать... Но передав в неё, скажем, слово "Привет", в файле text.txt получаю:
&# 1055;&# 1088;&# 1080;&# 1074;&# 1077;&# 1090; (тока без пробелов, переводится в "Привет", почему-то)
что, разумеется, прочитать сходу трудно. Я понимаю, что это какое-то кодирование и имеет смысл, но все-таки, как его перевести в читабельный вид? В основном скрипте (из которого как раз вызываю эту подпрограмму) прописано use Encode; и кодировка windows-1251, но толку никакого... Заранее спасибо за помощь.

PM MAIL   Вверх
korob2001
Дата 20.2.2007, 00:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

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



Попробуй так:
Код

#!/usr/bin/perl -w
use strict;

sub text {
    open my $fh, ">", "text.txt" or die $!;
         print $fh join("\n", @_) . "\n";
    close $fh;
}

&text("Привет!","Это просто тестовое сообщение.","Пока...");


Это сообщение отредактировал(а) korob2001 - 20.2.2007, 00:46


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
Vahgo
Дата 20.2.2007, 01:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Да, получилось. Спасибо. Я так понял, указывать кодировку было лишним?
PM MAIL   Вверх
korob2001
Дата 20.2.2007, 01:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

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



Мне никогда ещё не приходилось этого делать.

Это сообщение отредактировал(а) korob2001 - 20.2.2007, 01:32


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
tishaishii
Дата 22.2.2007, 21:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Создатель
***


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

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



Нечего по-пусту заморачиваться.
Обычно, всё просто.

Добавлено @ 21:37 
Нечего по-пусту заморачиваться.
Обычно, всё просто.
Код
open(TEXT,">:encoding(cp1251)","text.txt") || die;

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


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

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


 




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


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

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