* Re: [room] Как найти файл в определённой кодировке? @ 2011-08-22 11:06 ` Alexei V. Mezin 2011-08-22 11:53 ` Sergey Korobitsin 1 sibling, 1 reply; 8+ messages in thread From: Alexei V. Mezin @ 2011-08-22 11:06 UTC (permalink / raw) To: Культурный офтопик 22.08.2011 14:01, Денис Черносов пишет: > 1) Есть ли автоматический способ получить список файлов, в cp1251 для > (полу)автоматической конвертации в юникод? > > 2) Аналогичный вопрос про переносы строк в стиле Windows|Unix... Не так? [alexei@intel_server tmp]$ file 1251.txt utf.txt 1251.txt: ISO-8859 English text, with CRLF line terminators utf.txt: UTF-8 Unicode English text Один файл из второго получен путем recode cp1251..utf8. ^ permalink raw reply [flat|nested] 8+ messages in thread
[parent not found: <CADbnjxHEH-8cBdpG4qfPB9a3TGPL9o2G8CTq-KFJjHrUdT6HcQ@mail.gmail.com>]
* Re: [room] Как найти файл в определённой кодировке? @ 2011-08-24 10:09 ` Alexei V. Mezin 0 siblings, 0 replies; 8+ messages in thread From: Alexei V. Mezin @ 2011-08-24 10:09 UTC (permalink / raw) To: Культурный офтопик 24.08.2011 13:57, Денис Черносов пишет: > Нет, эта информация ненадёжная. Не знаю, есть ли готовое, но google("file charset detection") говорит, что http://sourceforge.net/projects/chsdet/ http://fredeaker.blogspot.com/2007/01/character-encoding-detection.html http://www-archive.mozilla.org/projects/intl/detectorsrc.html и даже есть теория http://www-archive.mozilla.org/projects/intl/UniversalCharsetDetection.html ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [room] Как найти файл в определённой кодировке? 2011-08-22 11:06 ` [room] Как найти файл в определённой кодировке? Alexei V. Mezin @ 2011-08-22 11:53 ` Sergey Korobitsin 1 sibling, 1 reply; 8+ messages in thread From: Sergey Korobitsin @ 2011-08-22 11:53 UTC (permalink / raw) To: smoke-room Денис Черносов ☫ → To Культурный офтопик @ Mon, Aug 22, 2011 14:01 +0400 > Добрый день всем! > > > Есть проект, которые разрабатывался в течение долгого времени самыми разными > людьми. В нём в хаотичном порядке встречаются файлы в кодировке cp1251 > (остальные в юникоде). > > 1) Есть ли автоматический способ получить список файлов, в cp1251 для > (полу)автоматической конвертации в юникод? AFAIR, recode при указании перекодировать cp1251->unicode уже unicode-ный файл не тронет (у меня был положительный опыт, но лучше попробовать). > 2) Аналогичный вопрос про переносы строк в стиле Windows|Unix... Аналогично здесь. AFAIK, все преобразователи делают замену \r\n на \n, соответственно юниксный файл будет содержать только \n и заменятор заменять ничего не будет. Но вначале всё равно стоит поэкспериментировать. -- Bright regards, Sergey Korobitsin, Chief Research Officer Arta Software, http://arta.kz/ xmpp:undertaker@jabber.arta.kz -- ...Когда я увидел перед собой перспективу жизни, прожитой так же, как живет весь мир, я решил - ни за что, это отвратительно, мне будет стыдно самого себя. Если бы я участвовал в поддержке этой системы отчужденного, собственнического программирования, мне казалось бы, что я делаю мир хуже ради денег. -- Ричард М. Столлман (из интервью) ^ permalink raw reply [flat|nested] 8+ messages in thread
[parent not found: <CADbnjxH7g_=43uGjFvm--vAQvLSQd5KVGyy+hfGXE_LmjdH42A@mail.gmail.com>]
* Re: [room] Как найти файл в определённой кодировке? @ 2011-08-24 10:14 ` Alexei V. Mezin 2011-08-24 10:23 ` Andrew Borodin 2011-08-24 10:19 ` Aleksey Avdeev 2011-08-24 11:43 ` Sergey Korobitsin 2 siblings, 1 reply; 8+ messages in thread From: Alexei V. Mezin @ 2011-08-24 10:14 UTC (permalink / raw) To: Культурный офтопик 24.08.2011 14:04, Денис Черносов пишет: > 2) преобразование виндовых разделителей в юниксовые он делать не умеет и > вообще не перекодирует такие файлы: > > recode: failed: Ambiguous output in step `CR-LF..data' > Для этого есть ключ -f С последующим прогоном recode /CR (или /LF, надо в man уточнить), который уберет лишние символы там, где они есть. ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [room] Как найти файл в определённой кодировке? 2011-08-24 10:14 ` Alexei V. Mezin @ 2011-08-24 10:23 ` Andrew Borodin 2011-08-25 20:18 ` Aleksey Avdeev 0 siblings, 1 reply; 8+ messages in thread From: Andrew Borodin @ 2011-08-24 10:23 UTC (permalink / raw) To: Культурный офтопик On Wed, Aug 24, 2011 at 02:14:39PM +0400, Alexei V. Mezin wrote: > 24.08.2011 14:04, Денис Черносов пишет: > С последующим прогоном recode /CR (или /LF, надо в man > уточнить), который уберет лишние символы там, где они есть. Думаю, что tr -d '\r' будет быстрее. -- С уважением А. Бородин. ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [room] Как найти файл в определённой кодировке? 2011-08-24 10:23 ` Andrew Borodin @ 2011-08-25 20:18 ` Aleksey Avdeev 0 siblings, 0 replies; 8+ messages in thread From: Aleksey Avdeev @ 2011-08-25 20:18 UTC (permalink / raw) To: Культурный офтопик [-- Attachment #1: Type: text/plain, Size: 465 bytes --] 24.08.2011 14:23, Andrew Borodin пишет: > On Wed, Aug 24, 2011 at 02:14:39PM +0400, Alexei V. Mezin wrote: >> 24.08.2011 14:04, Денис Черносов пишет: > >> С последующим прогоном recode /CR (или /LF, надо в man >> уточнить), который уберет лишние символы там, где они есть. > > Думаю, что > > tr -d '\r' > > будет быстрее. Если концевые пробелы не критичны, то как вариант: sed -i 's/[[:space:]]*$//' ... -- С уважением. Алексей. [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 900 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [room] Как найти файл в определённой кодировке? 2011-08-24 10:14 ` Alexei V. Mezin @ 2011-08-24 10:19 ` Aleksey Avdeev 2011-08-24 11:43 ` Sergey Korobitsin 2 siblings, 0 replies; 8+ messages in thread From: Aleksey Avdeev @ 2011-08-24 10:19 UTC (permalink / raw) To: Культурный офтопик [-- Attachment #1: Type: text/plain, Size: 1389 bytes --] 24.08.2011 14:04, Денис Черносов пишет: > > > 22 августа 2011 г. 15:53 пользователь Sergey Korobitsin > <undertaker@arta.kz <mailto:undertaker@arta.kz>> написал: > > Денис Черносов ☫ → To Культурный офтопик @ Mon, Aug 22, 2011 14:01 +0400 > ... > > > 2) Аналогичный вопрос про переносы строк в стиле Windows|Unix... > > Аналогично здесь. AFAIK, все преобразователи делают замену \r\n на \n, > соответственно юниксный файл будет содержать только \n и заменятор > заменять ничего не будет. Но вначале всё равно стоит > поэкспериментировать. > > > Поэкспериментировал... > 1) вроде бы recode действительно не перекодирует лишнего, но > 2) преобразование виндовых разделителей в юниксовые он делать не умеет и > вообще не перекодирует такие файлы: > > recode: failed: Ambiguous output in step `CR-LF..data' dos2unix (из пакета hd2u)? -- С уважением. Алексей. [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 900 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [room] Как найти файл в определённой кодировке? 2011-08-24 10:14 ` Alexei V. Mezin 2011-08-24 10:19 ` Aleksey Avdeev @ 2011-08-24 11:43 ` Sergey Korobitsin 2 siblings, 0 replies; 8+ messages in thread From: Sergey Korobitsin @ 2011-08-24 11:43 UTC (permalink / raw) To: smoke-room Денис Черносов ☫ → To Культурный офтопик @ Wed, Aug 24, 2011 14:04 +0400 > Поэкспериментировал... > 1) вроде бы recode действительно не перекодирует лишнего, но > 2) преобразование виндовых разделителей в юниксовые он делать не умеет и > вообще не перекодирует такие файлы: > > recode: failed: Ambiguous output in step `CR-LF..data' > > Зато iconv их нормально отрабатывает. Но iconv точно пытается перекодироват > файлы, которые уже в юникоде и вылетает по ошибке: > > iconv: недопустимая входная последовательность в позиции 1099 > > Так что вижу выход рекурсивного прохода каталога с помощью recode и второго > прохода файлов, на которых он споткнулся с помощью iconv. Можно сделать в три этапа: 1. Прогоняем каталоги dos2unix (или аналогичной штукой, tr например) Результат: имеем все файлы в UNIX-кодировке 2. Натравливаем на готовые файлы. В идеале оно должно пройти без ошибок. Если ошибки всё-таки есть, то смотрим, что произошло и при необходимости натравливаем iconv > Спасибо всем за участие! Особенно тебе, земляк. ;) Пожалуйста! Меня тоже напрягают файлы не в unicode и не в unix-line-endings. При попытке работать с такими с помощью while; read, awk, да почти всеми текстовыми утилитами, начинается такая катавасия, что боже упаси. -- Bright regards, Sergey Korobitsin, Chief Research Officer Arta Software, http://arta.kz/ xmpp:undertaker@jabber.arta.kz -- Пифагоровы штаны Лобачевскому смешны -- <lj user=osd> ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2011-08-25 20:18 UTC | newest] Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2011-08-22 11:06 ` [room] Как найти файл в определённой кодировке? Alexei V. Mezin 2011-08-24 10:09 ` Alexei V. Mezin 2011-08-22 11:53 ` Sergey Korobitsin 2011-08-24 10:14 ` Alexei V. Mezin 2011-08-24 10:23 ` Andrew Borodin 2011-08-25 20:18 ` Aleksey Avdeev 2011-08-24 10:19 ` Aleksey Avdeev 2011-08-24 11:43 ` Sergey Korobitsin
Культурный офтопик This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/smoke-room/0 smoke-room/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 smoke-room smoke-room/ http://lore.altlinux.org/smoke-room \ smoke-room@lists.altlinux.org smoke-room@lists.altlinux.ru smoke-room@lists.altlinux.com smoke-room@altlinux.ru smoke-room@altlinux.org smoke-room@altlinux.com public-inbox-index smoke-room Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.smoke-room AGPL code for this site: git clone https://public-inbox.org/public-inbox.git