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

Re: UNICODE in Windows'95



>> Посмотрел: http://www.sensi.org/~alec/unicode/win95.html#offi,
>> увы, не все так хорошо.
>> Вот эта фраза меня сильно смущает:
>> >    Microsoft Office'97 имеет весьма мощную поддержку UNICODE. Более
того,
>> >по видимому все внутреннее
>> >представление символов происходит в UNICODE.
>> Конкретно про Word8: UNICODE используется весьма странно, не всегда - его
нет
>> для Latin1, идет обычный 8бит, а для русского - именно USC-2, даже не
UTF8!!!


 Дак там же написано "по-видимому"... Максимум, что я могу сделать --
выделить эту фразу еще более красным цветом. :-)

 Поскольку *нормального* описания Word.Document.8 нету, приходится
пользоваться догадками и revers engineering-ом. Если кто-то напишет
статью об этом формате -- я с удовольствием на нее сошлюсь.
StarOffice в исходниках так и не открыли.

 И еще обратите внимание : *внутреннее представление* в работающей
программе и формат хранения во *внешнем* файле. Это могут быть
совершенно разные форматы.

 А MS Word 8 сам по себе *реально* поддерживает UNICODE.
Например, работает такой макрос :
=====
Sub InsUniCode()
   Selection.InsertSymbol CharacterNumber:=25991, Unicode:=True
End Sub
=====
 Вставляет иероглиф. Можно повесить на HotKey или в меню.


 Как известно, Windows'95 в отличии от Windows NT не поддерживает
UNICODE на уровне системы. ЕДИНСТВЕННАЯ функция - это доступ
к TrueType фонтам - Нарисовать символ и Получить метрики фонта.
Поэтому ВСЯ работа с UNICODE - это исключительно внутренняя
задача приложения : MS IE, Java VM или MS Word. И помощи от
платформы практически никакой. Только рисование глифов wchar_t
в DC. И на том спасибо.


 Кстати, насколько я помню, в X-ах практически та же ситуация.
Х-ы могут нарисовать 16-битный символ из 16-битного шрифта.
И все. И 16-бит там -- вовсе не значит UNICODE. Причем похоже
16-битные шрифты не поддерживаются через Font Server.
Подробно не разбирался...


P.S. Насчет странички : что бы вы хотели конкретно, чтобы я там
исправил ?

--
-=AV=-