Forum Webscript.Ru

Программирование => Perl => Тема начата: GrAfF от 21 Августа 2004, 22:22:09

Название: из dos в win
Отправлено: GrAfF от 21 Августа 2004, 22:22:09
Доброе!

use Encode;
$tmp = ;
chomp $tmp;
$tmp = decode("cp855", $tmp);
$tmp = encode("cp1251", $tmp);
print $tmp;
open (OUT, ">55.txt") or die $!;
print OUT ($tmp);
close

Пишу консольную утилу для под win. Нужно спросить у юзера строчку (в DOS кодировке) и сконвертить её в win1251, чтобы потом создать директорию. Вышеприведённый код почти работает, т.е. почти похоже, но не то.
Что исправить или как ещё омжно написать?
Cyrillic.pm можно не советовать, он так на моей машине и не завелся.
Название: из dos в win
Отправлено: NeoNox от 22 Августа 2004, 12:03:27
Вообще-то уже есть консольные утилиты для этого. В *nix системах
man iconv а под винду есть порт - libiconv. Искать на sourceforge.net.
Название: из dos в win
Отправлено: GrAfF от 25 Августа 2004, 02:27:29
Спасибо. Но вроде же логично смотрится. Код. Но не работает.. Теперь даже интереснее именно это, а не то, как ещё можно перекодировать.
Название: из dos в win
Отправлено: NeoNox от 25 Августа 2004, 19:35:16
GrAfF не знаю, даже провериить не на чем.
Напиши автору модуля что не так.
Название: из dos в win
Отправлено: arto от 25 Августа 2004, 20:47:18
# echo "Пишу консольную утилу для под win." | iconv -f KOI8-R -t CP855 | perl -MEncode -pne \'Encode::from_to ($_,"cp855","cp1251");\' | iconv -f CP1251 -t KOI8-R
Пишу консольную утилу для под win.
#
Название: из dos в win
Отправлено: NeoNox от 25 Августа 2004, 22:44:31
arto откуда в виндовз iconv??