МАРК-8 кодировка является стандартным МАРК используется в MARC-21 библиотеки записей. Форматы 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.
Комбинирующие символы и базовые символы расположены в другом порядке, чем в Unicode. Ниже приведены некоторые примеры. Комбинированные символы не всегда сохраняются в обратном порядке, как при нормализации Unicode. Стандарт MARC-21 более подробно описывает проблемы преобразования Unicode в MARC-8.
Показано Характер | Юникод | MARC-8 |
---|---|---|
á | а ́ | ́ а |
ậ | а ̣ ̂ | ̂ ̣ а |
В ИСО / МЭК 2022 кодирования определяет отображение двухслойная между символами кодов и отображаемых символов. В MARC-8 символьные коды из 7-битного графического диапазона ASCII (0x20–0x7F) называются кодами «G0», а коды из «высокого диапазона ASCII» (0xA0–0xFF) называются «G1». "коды. Графические наборы символов обозначаются и вызываются с помощью множественной последовательности байт побега, состоящей из экранирующего символа, промежуточной последовательности символов, и последнего символа в виде ESC, я F.
В следующей таблице показан промежуточный байт после байта ESC (шестнадцатеричный 1B) и соответствующие символы ASCII.
G0 установлен | Набор G1 | |||||||
---|---|---|---|---|---|---|---|---|
SBCS | MBCS | SBCS | MBCS | |||||
Нормальный ISO-2022 | 28 год | ( | 24 | $ | 29 | ) | 24 29 | $) |
Альтернативный ISO-2022 (дополнительные 63 + 16 комплектов) | 2C | , | 24 2C | $, | 2D | - | 24 2D | $ - |
В следующей таблице показаны последние байты в шестнадцатеричном формате и соответствующие символы ASCII после промежуточных байтов.
Байтов | Символы | Имя | Тип | Комментарий |
---|---|---|---|---|
31 год | 1 | Китайский, японский, корейский ( EACC ) | MBCS | |
32 | 2 | Базовый иврит | SBCS | |
33 | 3 | Базовый арабский | SBCS | |
34 | 4 | Расширенный арабский | SBCS | |
42 | B | Базовая латиница ( ASCII ) | SBCS | |
21 45 | ! E | Расширенная латиница ( ANSEL ) | SBCS | 21 (шестнадцатеричный) технически является вторым байтом промежуточного сегмента этой escape-последовательности. |
4E | N | Базовая кириллица | SBCS | |
51 | Q | Расширенная кириллица | SBCS | |
53 | S | Базовый греческий | SBCS |
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, доступны также следующие пользовательские наборы. Обозначение байта следует за байтом перехода (шестнадцатеричный 1B). Промежуточного байта нет.
Байтов | Символы | Имя | Тип | Комментарий |
---|---|---|---|---|
62 | б | Набор нижнего индекса | SBCS | |
67 | грамм | Набор греческих символов | SBCS | Символы альфа, бета и гамма обычно не поддерживают Unicode в обоих направлениях. |
70 | п | Набор надстрочных знаков | SBCS | |
73 | s | Базовая латиница ( ASCII ) | SBCS |