On Sun, 23 Jul 2000, Vlad Harchev wrote: > > Да, там на этом месте байт 0x85 (по-моему) - это HORIZONTAL ELISPIS в > соотвествии с определением cp1251 заложенном в glibc, таковой символ отсутвует > в кодировка koi8-r, поэтому iconv не может его перевести и отказывается идти > дальше. > Во-первых, я не думаю что этот символ в приложенном файле имеет какой-то > смысл - скорее глюк какой-то софтины (экспорта из экселя?).
Почему не имеет смысл? Многоточие оно вполне имеет смысл. > Во-вторых, было бы неплохо расширить возможности _утилиты_ iconv на предмет > поведения в случае невозможности перевода - типа либо останов, либо пропуск > символа, либо оставить как есть, либо замена чем-нить другим (типа пробела) > либо перевод в mnemonic unicode (типа <horizontal-elipsis> в нашем случае). Для большинства подобного рода символов существуют довольно приличные замены на комбинации из нескольких символов. В свое время, когда я писал catdoc версии 0.90 я там предусмотрел подобную ситуацию. И в существующем дистрибутивном файле ascii.replchars horizontal ellipsis заменяется именно на "..." Точнее, у меня там используется трехуровневая замена 1. Смотрим есть ли данный unicode символ в таблице specchars (например "\" в случае если выходной формат TeX или "&" в случае HTML) Если нашли, то выводим заменитель из данной таблицы и идем на следующий unicode символ 2. Пытаемся перекодировать в выходной charset. Если получилось, выводим то, что получилось 3. Если шаг 2 был безуспешный, ищем в таблице заменителей (а в ней есть много чего - корректная транслитерация всей кириллицы, отображение букв latin 1 на буквы с порезанными умляутами etc, причем для каждого выходного формата она своя, с учетом того, что те же TeX и HTML имеют специальные управляющие последовательности для многих интересных printablе символов. 4. Если и это не спасло, то в зависимости от режима выводим либо универсальный символ-заменитель (обычно "?") либо 16-ричный код данного Unicode-символа. Но чтобы обламываться и выпадать с ошибкой... -------------------------------------------------- Victor Wagner [EMAIL PROTECTED] Programmer Office:7-(095)-785-09-72 Institute for Commerce Home: 7-(095)-135-46-61 Engineering http://www.ice.ru/~vitus