Кодировка MARC -8 — это стандарт MARC, используемый в записях библиотеки MARC-21 . [1] Форматы MARC являются стандартами представления и передачи библиографической и сопутствующей информации в машиночитаемой форме и часто используются в библиотечных системах баз данных . Кодировка символов , известная сейчас как MARC-8, была введена в 1968 году как часть формата MARC. Первоначально основанный на латинском алфавите , с 1979 по 1983 год инициатива JACKPHY расширила репертуар, включив в него японские, арабские, китайские и еврейские символы (среди прочих), с последующим добавлением кириллицы и греческого алфавита. Если символ не может быть представлен в MARC-8 записи MARC-21, вместо него необходимо использовать UTF-8 . UTF-8 поддерживает гораздо больше символов, чем MARC-8, который редко используется вне данных библиотеки.
MARC-8 использует вариант кодировки ISO-2022 . Он использует escape-символы для представления символов, выходящих за пределы 7-битного диапазона символов ASCII .
Обычно он использует тот же логический порядок BiDi, что и Unicode .
Комбинированные символы и базовые символы расположены в другом порядке, чем в Юникоде. Ниже приведены некоторые примеры. Комбинированные символы не всегда сохраняются в порядке, обратном нормализации Юникода . Стандарт MARC-21 более подробно описывает проблемы преобразования Unicode MARC-8.
Кодирование ISO/IEC 2022 определяет двухуровневое сопоставление между кодами символов и отображаемыми символами. В MARC-8 коды символов из 7-битного графического диапазона ASCII (0x20–0x7F) называются кодами «G0», а коды из диапазона «высокого ASCII» (0xA0–0xFF) называются «G1». "коды. Наборы графических символов обозначаются и вызываются с помощью многобайтовой escape-последовательности, состоящей из escape-символа, промежуточной последовательности символов и конечного символа в форме ESC I F .
В следующей таблице показан промежуточный байт после байта ESC (шестнадцатеричный 1B) и соответствующие символы ASCII.
В следующей таблице показаны последние байты в шестнадцатеричном формате и соответствующие символы ASCII после промежуточных байтов.
EACC — единственная многобайтовая кодировка MARC-8, она кодирует каждый символ CJK в трех байтах ASCII.
Например, для кодирования символа U+4EBA CJK (人) вам понадобятся следующие байты:
\x1B\x24\x31\x21\x30\x64
\x1B\x24\x31 переключается на EACC/CJK, а \x21\x30\x64 соответствует U+4EBA.
В дополнение к наборам символов ISO-2022 также доступны следующие пользовательские наборы. Обозначение байта следует за escape-байтом (шестнадцатеричный 1B). Промежуточного байта нет.
MARC 21 использует GS (0x1D) в качестве признака завершения записи, RS (0x1E) в качестве признака завершения поля и US (0x1F) в качестве разделителя подполя. [3]
Следующий альтернативный набор управляющих кодов C1 определен для библиографических приложений, таких как библиотечные системы . В основном он касается сопоставления строк и разметки библиографических полей. Немного разные варианты определены в немецком стандарте DIN 31626 [4] (опубликован в 1978 году и с тех пор отменен) [5] и стандарте ISO 6630 , [6] [7], последний из которых также был принят в Германии как DIN. ИСО 6630 . [8] Если они различаются, это указано в таблице ниже, где это применимо. MARC-8 использует кодировку NSB и NSE из этого набора и добавляет некоторые дополнительные эффекторы формата в местах, не используемых версией ISO; однако MARC 21 использует этот набор элементов управления только в записях MARC-8, а не в записях формата Unicode. [3]
При использовании механизма расширения ISO/IEC 2022 набор DIN 31626 обозначается как активный набор управляющих символов C1 с помощью последовательности 0x1B 0x22 0x45
( ESC " E
), [4] , а набор ISO 6630 / DIN ISO 6630 обозначается последовательностью 0x1B 0x22 0x42
( ESC " B
). [6] Расширение набора ISO 6630 1985 года также можно явно указать с помощью последовательности 0x1B 0x26 0x40 0x1B 0x22 0x42
( ESC & @ ESC " B
). [7]
{{citation}}
: CS1 maint: числовые имена: список авторов ( ссылка ){{citation}}
: CS1 maint: числовые имена: список авторов ( ссылка )