On Sun, 23 Jul 2000, Victor Wagner wrote: > 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-символа. > > Но чтобы обламываться и выпадать с ошибкой... В принципе, наверное будет действительно лучше использовать такую "очеловечивающую" перекодировку (типа horizontal elipsis -> ...) - раньше я о ней думать не хотел, а сейчас посмотрел таблицы с заменами от lynx'а (в файлах src/chartrans/{rfc_suni.tbl,mnem_suni.tbl,mnem2_suni.tbl}) - они не такие уж и большие килобайт 30 в бинарнике будут занимать - наверно дадут maintainer'ы glibc их в утилиту iconv вставить. > -------------------------------------------------- > 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 > > > -- > To UNSUBSCRIBE, email to [EMAIL PROTECTED] > with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED] > Best regards, -Vlad