[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [проект] метод передачи названия кодировки используемой на других платформах для данной локали



On Wed, 27 Sep 2000, Vlad Harchev wrote:

> > >  А он использует wv? Смотри wv, файл text.c - там отображение кодов языков от 
> > > MS в имена кодировок - например 1049->cp1251. А дальше юзаешь iconv для
> > 
> > Нет не использует. Потому что должен собираться под DOS в 16-битном
> > режиме. Соответственно, никаких iconv. Ну нету этой функции на большей
> > части поддерживаемых платформ. Всяких там SunOS 4, HP/UX 9 и так далее. 
> 
>  Есть libiconv которая предоставляет iconv_* - именно ее юзает абиворд на
> платформах отличных от линукса. Ее наверно и под дос скомпилить можно, если
> выкинуть японксие кодировки (у них там наверно размер одной таблицы больше 64K
> будет).

Сомневаюсь. Я собственно, и libcole не использую. Современные программисты
давно забыли как программировать на 16-битных платформах.

У меня в catdoc есть вполне работоспособная логика конвертирования в
юникод/из юникода, которая легко расширяема - читает текстовые описания
кодировок с ftp.unicode.org, и имеет легко настраиваемую систему
подстановок, в том числе и для вывода plaintext. Как частный случай - если
почитать catdoc русский текст (не только doc) при выходной кодировке
us-ascii, то получится вполне корректная транслитерация.
 
Так что я не вижу причин отказываться от этой логики.

Отказываться от логики разбора формата приходится, особенно из-за word>=8,
где запросто может встретиться кусок в cp1252, а кусок в UCS2, причем
граница между ними по границе 128-байтного блока. 

Но использование честной библиотеки для разбора OLE (даже если она
соберется Turbo C 2.01) это отказ от работы с non-seekable файлами.
А терять возможность конвертить по пайпу не хочется.

И вообще, если за таким монстром как AbiWord две лишние библиотеки таскать
осмыслено, то за маленькой утилиткой (досовский екзешник 0.90.3 - 26К)
это уже вопрос. 
      
  
-- 
Victor Wagner			vitus@ice.ru
Programmer			Office:7-(095)-785-09-72
Communiware.Net 		Home: 7-(095)-135-46-61
http://www.communiware.net      http://www.ice.ru/~vitus