Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > Перекодировка


Автор: worsvch 13.3.2014, 13:23
ОС: windows
Есть файл в кодировке UCS-2BE, как можно его перекодировать чтобы в командной строке нормально отображался русский текст?
Пробовал encoding, выводит кракозябры 

Автор: reiserford 13.3.2014, 13:36
Код

use common::sense;
use Encode;
say Encode::encode("cp1251", Encode::decode("UCS-2BE", $ucs2));

а так?

Автор: worsvch 13.3.2014, 14:21
Цитата(reiserford @ 13.3.2014,  13:36)
Код

use common::sense;
use Encode;
say Encode::encode("cp1251", Encode::decode("UCS-2BE", $ucs2));

а так?

Так частично, большинство символов нормально, но некоторые буквы отображаются неккоректно, например У отображается как # 

Автор: arto 14.3.2014, 09:50
GET http://az.lib.ru/t/tolstoj_lew_nikolaewich/text_0040.shtml | iconv -f cp1251 -t UCS-2BE -c | perl -lpe 'BEGIN{binmode STDIN, ":encoding(UCS-2BE)"; binmode STDOUT, ":encoding(koi8-r)"}' ошибок не показывает.
Может строка неправильная?

Автор: worsvch 22.3.2014, 10:05
Цитата(arto @ 14.3.2014,  09:50)
GET http://az.lib.ru/t/tolstoj_lew_nikolaewich/text_0040.shtml | iconv -f cp1251 -t UCS-2BE -c | perl -lpe 'BEGIN{binmode STDIN, ":encoding(UCS-2BE)"; binmode STDOUT, ":encoding(koi8-r)"}' ошибок не показывает.
Может строка неправильная?

iconv - это, например, linux, но не windows. Текстовые файлы все в windows

Автор: shamber 22.3.2014, 10:13
Цитата(worsvch @ 22.3.2014,  10:05)
iconv - это, например, linux, но не windows. 

https://www.google.ru/search?q=iconv+windows&oq=iconv+windows

Автор: worsvch 22.3.2014, 10:59
Цитата(shamber @ 22.3.2014,  10:13)
Цитата(worsvch @ 22.3.2014,  10:05)
iconv - это, например, linux, но не windows. 

https://www.google.ru/search?q=iconv+windows&oq=iconv+windows

Действительно есть, извиняюсь.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)