Re: перекодировка
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 vitus@ice.ru
> 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 debian-russian-request@lists.debian.org
> with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
>
Best regards,
-Vlad
Reply to: