Современные компьютерные web-брoузеры могут показывать только один набор символов, что очевидно неприемлемо для текстовых источников, использующих несколько различных шрифтов. В информационном источнике, содержащем относительно небольшое количество символов, не входящих в избранный базовый набор символов, возможны обходные приемы такие как вставки графических символов или ссылки на графические примитивы. Однако такие способы делают проблематичным компьютеризированный поиск по таким текстам. Существует более обширный набор символов, явившийся попыткой выйти за пределы лимита символов в 256 знаков, WGL-4 (Windows Glyph List 4), по сути объединяющий в себе таблицы кодирования Windows CP-1250, 1251, 1252, 1253 и 1254. Однако с учетом избрания Unicode специалистами Microsoft для Windows NT/2000 семейства операционных систем, WGL-4 в настоящее время используется редко [5].
На сегодняшний день наилучшим остающимся возможным вариантом кодирования многошрифтовых текстов является многобайтовая система кодирования символов Unicode. Unicode был задуман с целью разрешения проблемы “распространения множественных несопоставимых и неадекватных систем шрифтов”[2]. К сожалению в последующие с момента начала разработки стандарта Unicode годы были разработаны схемы кодирования, представляющие собой различные вариации на тему стандарта Unicode, такие как стандарт UTF (Unicode Transformation Format)-8, UTF-16 формат с обратным порядком байтов и UTF-16 с прямым порядком байтов.
Использование Unicode для текстовых файлов, которые кодировались при помощи XML для “Летописи журнальных статей” предполагало принятие ряда других важных решений, таких как выбор редактора для кодирования и поисковой системы для обеспечения доступа к данным. Спецификация XML предполагает распознавание всеми XML синтаксическими анализаторами версий UTF-8 и UTF-16 стандарта Unicode[8]. Тем не менее комбинирование Unicode и XML постепенно развивается с использованием редакторов XML и XML поисковых систем. Кроме того, некоторые программные продукты используют UTF-8 в качестве дефолт- схемы Unicode, в то время как другие используют для этих целей тот или иной вид UTF-16.
В результате тестирования различных текстовых редакторов дружественных Unicode, а также редакторов XML, совместимых с Unicode, мы пришли к выводу, что Unicode создаваемый или редактируемый в одном редакторе далеко не всегда читаем в другом Unicode редакторе. Мы протестировали несколько редакторов Unicode, включая Yudit, Unicode редактор с открытым источником; Unipad, редактор Unicode, имеющий в своей основе Windows, Microsoft Word 2000 и WordPerfect 9. Те несколько редакторов, которые мы протестировали, являют собой несколько отличающиеся версии стандарта Unicode, или имеют странные заменители символов Unicode. Например, мы нашли один редактор, который автоматически превращает все русские угловые скобки, символизирующие цитату (кавычки Unicode U+00AB и U+00BB) в кавычки из латинского алфавита (Unicode U+0022) каждый раз когда файл сохраняется, закрывается и открывается снова. Таким образом, текст закодированный в Unicode для проекта “Летопись журнальных статей пожалуй создал столько же проблем, сколько решил.
Тем не менее, использование многобайтового кодирования позволяет выйти за рамки 256-символьного лимита, установленного восьми-битовым кодированием. Шестнадцати-битовое кодирование позволяет кодировать до 65 536 символов, хотя версия 3.0 станадарта Unicode рассчитана на 49 194 символа [9]. Следует заметить, что одной из целей, заявленных Консорциумом Unicode является “устранение дублирования посредством объединения символов в рамках одного шрифта по языкам и придания единого кодового значения символам, идентичным по форме” [6]. Ключевым выражением в этом заявлении является “в рамках одного шрифта”. Символы, идентичные по форме, но категоризированные как принадлежащие разным шрифтам, рассматриваются как совершенно разные единицы с определенными шестнадцатизначными кодами Unicode. Таким образом, те символы Unicode, которые визуально похожи или идентичны, в различных шрифтах рассматриваются как совершенно разные символы Unicode. Например, в латинском алфавите заглавная буква “X” имеет шестнадцатизначный код Unicode U+0058, в греческом алфавите заглавная буква хи “X” имеет значение U+03A7, и в кириллице заглавная буква “X” имеет значение U+0425.
В то время как определение идентичных или похожих графических изображений символов в соответствующие наборы шрифтов имеет свои преимущества и в некоторых ситуациях имеет абстрактное логическое обоснование (например, латинское “Н” и кириллическое “Н” имеют абсолютно разную фонетическую нагрузку), на практике это негативно влияет на точность распознавания символов программным продуктом OCR, что в свою очередь снижает способность поисковых систем находить отдельные текстовые фрагменты в оцифрованных текстовых документах, которые прошли через процесс оптического распознавания с применением OCR. В тексте на нескольких языках каким является “Летопись журнальных статей”, если OCR запрограмированно на распознавание нескольких языков, существует реальная опасность того, что для читающего человека слово зрительно предстает правильно написанным, однако отдельные символы могут быть неверно распознаны программой OCR. Например, “H” латинского алфавита может быть заменено на “Н” из кириллицы. В зависимости от типа и размера печатного шрифта это различие может быть незаметно взгляду читающего, однако компьютерная поисковая система определенно даст сбой при поиске текста, поскольку она будет искать символ U+041D, в то время как фактически текст содержит символ U+0048.
Читать дальше