On Sat, Feb 28, 2004 at 11:48:20AM +0300, Victor B. Wagner wrote: > On 2004.02.28 at 12:17:50 +0400, Vlad Harchev wrote: > > > Hi, > > > > В общем задача - есть текст в cp1251, надо его перегонять скриптами в koi8r. > > iconv(1) даже с ключем -c вываливается в середине со словами > > iconv: illegal input sequence at position 1385 > > Первое о чём бы я подумал - поменять технологию, и не использовать > koi8-r. Ведь iconv не просто так ругается. Он предупреждает что > информация будет теряться. > > В koi8-r есть далеко не все символы, которые пользователи кодировки 1251 > используют в обычных текстовых файлах. Кавычек нет, длинного тире нет и > так далее. > > Если заменить koi8-r на 1251 или utf-8 не удаётся - подумать о том, > на что заменять эти символы. И уже в соответствии с этим искать решение.
Все это справедливо. Но у меня в реальности была необходимость переименовать дерево файлов с русскими именами в cp1251 в дерево файлов с именами koi8-r. Имена в koi8r практически всем устраивают, в революциях смысла для меня лично нет. > В принципе, утилита которая используя iconv(3) перекодирует всё, что > перекодируется, а остальное заменяет по таблице, пишется на коленке за > два часа. Это да, но зачем эти 2 часа терять если есть готовые решения. > > > Есть ли какие-либо утилиты которые могут такие ситуации обрабатывать - в > > смысле > > не отваливаться? > > Помню в altlinux iconv(1) (то есть часть glibc) специально патчится чтобы > > это можно было обрабатывать, но их патч почему-то в официальном glibc > > (2.2.5) > > отсутствует.. > > В 2.3 есть. Вроде их патч не до конца интегрировали - у них кажется была возможность замены неконвертируемых символов на указанный. -- Best regards, -Vlad