Главное меню
Мы солидарны с Украиной. Узнайте здесь, как можно поддержать Украину.

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

Автор Bhudh, февраля 3, 2014, 06:00

0 Пользователи и 1 гость просматривают эту тему.

Hellerick

Цитата: Bhudh от февраля  3, 2014, 10:38
Цитата: Hellerick от февраля  3, 2014, 10:34А тоталКоммандер у вас список файлов выдать не может?
Не пользуюсь TC.

:uzhos:
Да шо же там за компутер такой. Ничиво нету.

Bhudh

Всё тут есть. Но не пользуюсь.
Блин, этот скрипт полминуты файл в 35 KB обрабатывает :fp:. А в папке их 144!
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Bhudh

Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Bhudh

Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

amdf

Ставите iconv, версию для Windows.

Дальше. Набор пакетных файлов:

all.cmd

for /R %%i in (.) do call txt.cmd %%i


iconv2.cmd

iconv -c -f cp866 -t UTF-8 %1 > win.%1
del %1
rename win.%1 %1


txt.cmd

set cd2=%cd%
cd %1
for %%j in (*.txt) do call %cd2%\iconv2.cmd %%j
cd %cd2%


Кладёте папку с файлами туда, где скрипты. Запускаете all.cmd. В iconv2.cmd указать нужную исходную кодировку вместо 866.
Ведовьство, потвори, чяродеание, волхъвование, зеленничьство, церковнаа татба, мертвеци сволочать, крест посекут, или на стенах трескы емлють из креста.

Bhudh

Уже перекодировал. За 43 минуты.
Но всё равно: для простой, казалось бы, задачи, для набившей всем оскомину проблемы с кодировками просто НЕТ нормального инструмента и приходится руками писать самопальные скрипты и батники, как в каких-нибудь 80-х‼
ПОЧЕМУ???
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

antic

Цитата: Bhudh от февраля  3, 2014, 10:14
HTML Changer, насколько я понял, работает как «найти-заменить». А таблицу «что найти-на что заменить» надо делать ручками. Как-то для смены кодировки не особо подходит...
Вы неправильно понимаете. Точнее, не до конца понимаете. Точнее, не полностью, только частично.
У этой программы есть два режима: удаление, замена, вставка кусков текста и перекодировка страницы.
Для изменения кодировок нужно сделать два этапа работы: произвести собственно перекодировку и произвести замену тега с указанием кодировки.
Всё вместе занимает около трёх минут рабочего времени оператора!
Вы вместо этого 43 минуты мучились, да ещё, наверное, до этого экспериментировали черт знает сколько времени, и на форуме висели.

— Боже мой, боже мой, чем вы вынуждены заниматься! Но я спрашиваю вас, кто-то все-таки летит ведь к звёздам! Где-то строят мезонные реакторы! Где-то создают новую педагогику! Боже мой, совсем недавно я понял, что мы даже не захолустье, мы — заповедник! В глазах всего мира мы — заповедник глупости, невежества и порнократии.
АБС «Хищные вещи века»

Bhudh

Цитата: antic от февраля  3, 2014, 12:07Для изменения кодировок нужно сделать два этапа работы: произвести собственно перекодировку и произвести замену тега с указанием кодировки.
А теперь ложка дёгтя: в настройках программы просто нет кодировки windows-1252.
Там только кириллические кодировки, из одной которой в другую и предлагается перекодировать.
Так как программа делалась для русскоязычного пользователя.

Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

antic

Ну, на вас не угодишь. Попробуйте поискать более новую версию, может быть там есть
— Боже мой, боже мой, чем вы вынуждены заниматься! Но я спрашиваю вас, кто-то все-таки летит ведь к звёздам! Где-то строят мезонные реакторы! Где-то создают новую педагогику! Боже мой, совсем недавно я понял, что мы даже не захолустье, мы — заповедник! В глазах всего мира мы — заповедник глупости, невежества и порнократии.
АБС «Хищные вещи века»

amdf

Цитата: Bhudh от февраля  3, 2014, 11:24
Уже перекодировал. За 43 минуты.
Но всё равно: для простой, казалось бы, задачи, для набившей всем оскомину проблемы с кодировками просто НЕТ нормального инструмента и приходится руками писать самопальные скрипты и батники, как в каких-нибудь 80-х‼
ПОЧЕМУ???
Потому что путь Unix учит нас делать так. Кто неспособен написать скрипт или воспользоваться консольным инструментом, великолепно выполняющем свою узкую задачу, тот будет довольствоваться "удобными" программами, осуществляющими перекодирование за 43 минуты, и ещё большее количество минут искать их.
Ведовьство, потвори, чяродеание, волхъвование, зеленничьство, церковнаа татба, мертвеци сволочать, крест посекут, или на стенах трескы емлють из креста.

Тайльнемер

Цитата: Bhudh от февраля  3, 2014, 10:46
Блин, этот скрипт полминуты файл в 35 KB обрабатывает :fp:. А в папке их 144!
Вы про пауэршелловский скрипт?

Hellerick

Цитата: Bhudh от февраля  3, 2014, 11:24
ПОЧЕМУ???

Это правильно.

Можно на каждую элементарную операцию иметь по программе, а потом хранить весь этот зоопарк, надеясь, что однажды удастся ими воспользоваться, а можно иметь пару-тройку универсальных инструментов и уметь применять их. Второе перспективнее.

Bhudh

Цитата: amdf от февраля  3, 2014, 12:31тот будет довольствоваться "удобными" программами, осуществляющими перекодирование за 43 минуты
Цитата: Тайльнемер от февраля  3, 2014, 12:44Вы про пауэршелловский скрипт?
Да, я именно про пауэршелловский скрипт, а не про "удобную" программу.
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Bhudh

Цитата: Hellerick от февраля  3, 2014, 13:04а можно иметь пару-тройку универсальных инструментов
Только у каждого универсального инструмента оказывается свой собственный ни на что не похожий универсальный язык и будь любезен учи их все: bash, sed, cmd, powershell...
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Hellerick

Цитата: Bhudh от февраля  3, 2014, 13:18
Только у каждого универсального инструмента оказывается свой собственный ни на что не похожий универсальный язык и будь любезен учи их все: bash, sed, cmd, powershell...

Большая часть знаний по SED'у потом оказывается полезной в питоне.  :)

Bhudh

Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо


Bhudh

Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо


Bhudh

Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Python

Перекодировку можно сделать с помощью iconv (юниксовая утилита, есть портированные версии для windows):
iconv -f windows-1252 -t utf-8 <ansifile.htm >utf8file.htm
Требуется также добавить тег meta:
sed "s|<head>|<head><meta  http-equiv='Content-Type' content='text/html; charset=UTF-8' />|i" <utf8.htm >uf8.html

Все вместе в цикле (для конвертирования всех файлов htm в текущей папке с выводом в файлы с расширением html) будет выглядеть так:
for %i in (*.htm) do iconv -f windows-1252 -t utf-8 <%i | sed "s|<head>|<head><meta  http-equiv='Content-Type' content='text/html; charset=UTF-8' />|i" >%il
(При использовании этой команды в батнике, % нужно везде заменить на %% )


Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2

Быстрый ответ

Обратите внимание: данное сообщение не будет отображаться, пока модератор не одобрит его.

Имя:
Имейл:
Проверка:
Оставьте это поле пустым:
Наберите символы, которые изображены на картинке
Прослушать / Запросить другое изображение

Наберите символы, которые изображены на картинке:

√36:
ALT+S — отправить
ALT+P — предварительный просмотр