Пакетное перекодирование текстовых файлов

Здесь обсуждаются темы, косвенно связанные с Far.
SeMa
Posts: 157
Joined: Thu 03 Nov, 2005 12:31

Пакетное перекодирование текстовых файлов

Post by SeMa » Thu 08 Jul, 2010 12:27

Подскажите, почему при конвертировании FarSave1.reg (FAR2)
iconv -f UCS-2LE -t CP1251 FarSave1.reg
или
iconv -f UTF-16LE -t CP1251 FarSave1.reg
выдается
iconv: FarSave1.reg: cannot convert
Неужели не та кодировка задана?
Компьютер ─ устройство, разработанное для ускорения и автоматизации человеческих ошибок

User avatar
HaRT
Moderator
Posts: 8022
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 67 times
Been thanked: 99 times

Re: GnuWin32, MSYS, UnxUtils, Cygwin и пр.

Post by HaRT » Thu 08 Jul, 2010 12:48

SeMa wrote:Подскажите, почему при конвертировании FarSave1.reg (FAR2)
[...]
Неужели не та кодировка задана?
А там часом нет символов, которые отсутствуют в CP1251? В историях диалогов, например…
Фар есть инструмент, а не нянька. © 2009 DrKnS

SeMa
Posts: 157
Joined: Thu 03 Nov, 2005 12:31

Re: GnuWin32, MSYS, UnxUtils, Cygwin и пр.

Post by SeMa » Thu 08 Jul, 2010 13:35

HaRT wrote:А там часом нет символов, которые отсутствуют в CP1251? В историях диалогов, например…
Сгенерил малый кусочек:
выполнил:
iconv -f UTF-16LE -t cp1251 align.reg
получил:
iconv: align.reg: cannot convert
Компьютер ─ устройство, разработанное для ускорения и автоматизации человеческих ошибок

User avatar
HaRT
Moderator
Posts: 8022
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 67 times
Been thanked: 99 times

Re: GnuWin32, MSYS, UnxUtils, Cygwin и пр.

Post by HaRT » Thu 08 Jul, 2010 13:55

Почему, не знаю.
Но с параметром -c всё же конвертирует. Правда, если я правильно понимаю, в этом случае те символы, которые „неправильные”, будут пропущены.

PS
Кстати, Вы уверены, что там надо именно UTF-16LE, a не UCS-2LE?
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
SlashNet
Posts: 574
Joined: Fri 20 Mar, 2009 09:43
Location: Львов
Has thanked: 3 times

Re: GnuWin32, MSYS, UnxUtils, Cygwin и пр.

Post by SlashNet » Thu 08 Jul, 2010 14:27

Скорее всего iconv ругается на BOM. (Я его удалил - все заработало)

Тот же recode преобразовал без вопросов.
ədиw wo⊥є ʚ o⊥ʎнdəʚədəu əɔʚ

SeMa
Posts: 157
Joined: Thu 03 Nov, 2005 12:31

Re: GnuWin32, MSYS, UnxUtils, Cygwin и пр.

Post by SeMa » Thu 08 Jul, 2010 14:59

Hart wrote:Кстати, Вы уверены, что там надо именно UTF-16LE, a не UCS-2LE?
в своем начальном посте показал примеры, там есть и UCS-2LE.
SlashNet wrote:Скорее всего iconv ругается на BOM. (Я его удалил - все заработало)
как удалить?
SlashNet wrote:Тот же recode преобразовал без вопросов.
не смог снаскоку разобраться в синтаксисе :no:
recode windows-1251 FarSave1.reg вообще ничего не делает - происходит запуск без ответа с немедленным возвратом в место запуска (появляется промпт).
Компьютер ─ устройство, разработанное для ускорения и автоматизации человеческих ошибок

User avatar
John Doe
Бюрократ
Posts: 11095
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 12 times
Been thanked: 66 times

Re: GnuWin32, MSYS, UnxUtils, Cygwin и пр.

Post by John Doe » Thu 08 Jul, 2010 15:07

SeMa wrote:не смог снаскоку разобраться в синтаксисе :no:
Поиск по форуму привёл бы вас сюда.

User avatar
SlashNet
Posts: 574
Joined: Fri 20 Mar, 2009 09:43
Location: Львов
Has thanked: 3 times

Re: GnuWin32, MSYS, UnxUtils, Cygwin и пр.

Post by SlashNet » Thu 08 Jul, 2010 15:30

SeMa wrote:как удалить?
В панелях ShiftF4 -> Выбираем кодировку 1251 или 866 -> Удаляем первые 2 байта -> Сохраняем.
ədиw wo⊥є ʚ o⊥ʎнdəʚədəu əɔʚ

User avatar
John Doe
Бюрократ
Posts: 11095
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 12 times
Been thanked: 66 times

Re: GnuWin32, MSYS, UnxUtils, Cygwin и пр.

Post by John Doe » Thu 08 Jul, 2010 15:38

Месье знает толк в извращениях ;)
В редакторе ShiftF2.

User avatar
SlashNet
Posts: 574
Joined: Fri 20 Mar, 2009 09:43
Location: Львов
Has thanked: 3 times

Re: GnuWin32, MSYS, UnxUtils, Cygwin и пр.

Post by SlashNet » Thu 08 Jul, 2010 15:42

Ну это по старой привычке. Полгода назад этой птички не было.
ədиw wo⊥є ʚ o⊥ʎнdəʚədəu əɔʚ

SeMa
Posts: 157
Joined: Thu 03 Nov, 2005 12:31

Re: GnuWin32, MSYS, UnxUtils, Cygwin и пр.

Post by SeMa » Thu 08 Jul, 2010 15:42

SlashNet wrote:
SeMa wrote:как удалить?
В панелях ShiftF4 -> Выбираем кодировку 1251 или 866 -> Удаляем первые 2 байта -> Сохраняем.
А если таких файлов ~100 ?
Компьютер ─ устройство, разработанное для ускорения и автоматизации человеческих ошибок

Игорь Юдинцев
Posts: 725
Joined: Sun 03 Apr, 2005 22:00
Location: Казань
Been thanked: 1 time

Re: GnuWin32, MSYS, UnxUtils, Cygwin и пр.

Post by Игорь Юдинцев » Thu 08 Jul, 2010 16:20

SeMa wrote:А если таких файлов ~100 ?
Пишем макрос, который давит клавиши, как описано выше, для каждого выделенного файла.

User avatar
John Doe
Бюрократ
Posts: 11095
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 12 times
Been thanked: 66 times

Re: GnuWin32, MSYS, UnxUtils, Cygwin и пр.

Post by John Doe » Thu 08 Jul, 2010 16:24

Ну а если по-умному? (учитывая название темы)

User avatar
Centaur
Posts: 1083
Joined: Tue 05 Apr, 2005 20:09
Location: Novosibirsk, Russia

Re: Пакетное перекодирование текстовых файлов

Post by Centaur » Thu 08 Jul, 2010 17:23

А по-умному CtrlG

Code: Select all

tail -c +2 "!.!" |iconv -f utf-16le -t какую-надо >куда-надо
tail, разумеется, где-то брать и ставить.

User avatar
t-rex
Страшный и ужасный
Posts: 4871
Joined: Tue 15 Mar, 2005 16:17
Location: Tel-Aviv
Contact:

Re: Пакетное перекодирование текстовых файлов

Post by t-rex » Thu 08 Jul, 2010 17:39

iconv -c

User avatar
Centaur
Posts: 1083
Joined: Tue 05 Apr, 2005 20:09
Location: Novosibirsk, Russia

Re: Пакетное перекодирование текстовых файлов

Post by Centaur » Thu 08 Jul, 2010 18:12

-с замаскирует другие непереводимые символы.

Post Reply

Return to “Операционные системы, командные оболочки и прочее”