Перекодировать cp1251 в koi8-r. Чем?

Всё о линукс сообществе Владивостока, организационные вопросы и предложения, проекты, линуксовки
Ответить
loooser
Sr. Member
Sr. Member
Сообщения: 286
Зарегистрирован: 07 июн 2006 16:10
Откуда: Владивосток
Контактная информация:

Перекодировать cp1251 в koi8-r. Чем?

Сообщение loooser »

Нужна какая-нибудь утилита, которая умеет cp1251 -> koi8-r с умным преобразованием кавычек-лапок и подобных символов. Т.е. либо в эквиваленты (> в "), либо в html-коды (> в »)
И надо чтобы из perl-проги можно было пользовать. Есть что-то подобное в природе?

Пока нашел только recode, но это не совсем то, т.к.:
recode -df cp1251..h1
делает из

Код: Выделить всё

«О противодействии
вот такое:

Код: Выделить всё

& #171;& #1054; & #1087;& #1088;& #1086;& #1090;& #1080;& #1074;& #1086;& #1076;& #1077;& #1081;& #1089;& #1090;& #1074;& #1080;& #1080;
А надо чтобы так каверкались только непреобразовываемые символы.
Танки пробок не боятся...

rayven
Global Moderator
Global Moderator
Сообщения: 160
Зарегистрирован: 06 июн 2006 21:10
Контактная информация:

Перекодировать cp1251 в koi8-r. Чем?

Сообщение rayven »

Сейчас линукса под рукой нет, но на вскидку приходит в голову iconv. Эта штука есть как в виде стандартной сишной (а значит и в перле она есть) функции из библиотеки glibc, кажется, так и в виде утилиты коммандной строки. В случае коммандной строки делаем так:

Код: Выделить всё

$ iconv -f CP1251 -t KOI8-R < input_file.txt > output_file.txt
У нее параметров целая куча, на сколько я помню. Поройся.

loooser
Sr. Member
Sr. Member
Сообщения: 286
Зарегистрирован: 07 июн 2006 16:10
Откуда: Владивосток
Контактная информация:

Перекодировать cp1251 в koi8-r. Чем?

Сообщение loooser »

Насколько я знаю, iconv затыкается на символах, которые не может перекодировать. KOI8-R -> CP1251 запросто перекодирует, а вот обратно - затыкается на тех же кавычках (просто завершается). И насколько я слышал, это нельзя победить.

recode такие символы просто не перекодирует, оставляет как есть. Хотя есть у меня смутное подозрение, что можно его как-то заставить работать правильно...
Танки пробок не боятся...

Аватара пользователя
hex
Full Member
Full Member
Сообщения: 138
Зарегистрирован: 07 июн 2006 11:17
Контактная информация:

Перекодировать cp1251 в koi8-r. Чем?

Сообщение hex »

tr натрави на кавычки :)

loooser
Sr. Member
Sr. Member
Сообщения: 286
Зарегистрирован: 07 июн 2006 16:10
Откуда: Владивосток
Контактная информация:

Перекодировать cp1251 в koi8-r. Чем?

Сообщение loooser »

hex: так этож надо составлять список всех подобных символов, а их довольно много. Если пропустить хоть символ, то потом это может вылезти в самый неподходящий момент... Да и лениво мне вручную их искать %=))
Танки пробок не боятся...

Аватара пользователя
rpk
Full Member
Full Member
Сообщения: 117
Зарегистрирован: 07 июн 2006 20:48
Откуда: Vladivostok
Контактная информация:

Перекодировать cp1251 в koi8-r. Чем?

Сообщение rpk »

А у меня рекод почему-то все тексты хавает как подобается.... :/

loooser
Sr. Member
Sr. Member
Сообщения: 286
Зарегистрирован: 07 июн 2006 16:10
Откуда: Владивосток
Контактная информация:

Перекодировать cp1251 в koi8-r. Чем?

Сообщение loooser »

rpk: хм, а какую команду даёшь?
И что значит "как полагается"? Если перекодируешь из win в koi, то что он делает с кавычками, длинными тире и с другими знаками типа "˚", "©", "®", "²", "¼", "÷", "§" ???
Танки пробок не боятся...

Аватара пользователя
rpk
Full Member
Full Member
Сообщения: 117
Зарегистрирован: 07 июн 2006 20:48
Откуда: Vladivostok
Контактная информация:

Перекодировать cp1251 в koi8-r. Чем?

Сообщение rpk »

[quote="loooser"]rpk: хм, а какую команду даёшь?
И что значит "как полагается"? Если перекодируешь из win в koi, то что он делает с кавычками, длинными тире и с другими знаками типа "˚", "©", "®", "²", "¼", "÷", "§" ???[/quote]
Что делает непомню - под рукой щас нету. Точно помню что за всё время пользования никаких проблем не встречал - хотя, у меня редко что требовалось переводить помимо plain-text. Кавычки точно были на месте, тире тоже.

По памяти с винды: recode cp1251 file_name {-f по желанию}...

loooser
Sr. Member
Sr. Member
Сообщения: 286
Зарегистрирован: 07 июн 2006 16:10
Откуда: Владивосток
Контактная информация:

Перекодировать cp1251 в koi8-r. Чем?

Сообщение loooser »

rpk: так лучше, но все-равно не подходит. Например, знак параграфа он превратил в "SS". Надо такое в html-коды переводить.
Танки пробок не боятся...

Ответить