Код Хань Синь
Код Хань Синь (汉信码 на китайском языке, китайский код ) — это двумерная (2D) матричная символика штрих-кода, изобретенная в 2007 году. [1] китайской компании Центр нумерации товаров Китая [2] (中国物品编码中心 на китайском языке), чтобы разрушить монополию на QR-код . Как и QR-код, код Хань Синь состоит из черных квадратов и белых квадратов, расположенных в виде квадратной сетки на белом фоне. Он имеет четыре шаблона поиска и другие маркеры, которые позволяют распознавать его с помощью считывателей на базе камеры . Код Хань Синь содержит исправление ошибок Рида-Соломона с возможностью чтения поврежденных изображений. В настоящее время он выпущен как ISO/IEC 20830:2021. [3]
Основным преимуществом (и требованием изобретения), сравнимым с QR-кодом, является встроенная возможность кодировать в QR-коде китайские символы вместо японских. Код Хань Синь в максимальной версии 84 (размер 189×189) [4] позволяет кодировать 7827 цифровых символов, 4350 английских текстовых символов, 3261 байт и 1044–2174 китайских символов (зависит от региона Unicode). Код Хань Синь кодирует полные латинские символы ISO/IEC 646 вместо ограниченного количества латинских символов, которое поддерживается QR-кодом . Это делает код Хань Синь более подходящим для кодирования текста на английском языке или GS1. идентификаторов приложений [5] кодирование данных.
Кроме того, код Хань Синь может кодировать Юникода из других языков в специальном режиме Юникода. символы [3] : 5.4.12 который имеет встроенное сжатие без потерь для набора символов UTF-8 и поддержку расширенной интерпретации каналов . Код Хань Синь имеет специальный режим компактификации для кодирования URI и может уменьшить размер штрих-кода, который кодирует ссылки на веб-страницы.
История и стандарты [ править ]
Китайская компания The Article Numbering Center of China (中国物品编码中心) во время 10-й пятилетки Китая приступила к исследованиям [6] замены собственного QR-кода, чтобы устранить монополию Японии в области 2D-штрих-кодов. В 2007 году новый стандарт штрих-кодов, в настоящее время известный как код Хань Синь, был опубликован как GB/T 21049-2007. [1] с названием, понятным китайскому коду.
В 2011 году [7] Американская компания «Ассоциация автоматической идентификации и мобильности» (AIM) представила символику кода Хань Синь МКС в качестве официального стандарта кодирования и опубликовала ее в своем магазине. [8]
В 2015 году группа ISO/IEC JTC 1/SC 31 приступила к внедрению. [9] кода Хань Синь в качестве международного стандарта и опубликовал его как ISO/IEC 20830:2021. [3] в 2021 году.
В 2022 году стандарт кода, ориентированный на китайский язык, был пересмотрен как GB/T 21049-2022. [10] и переименован в код Han Xin для соответствия стандарту ISO .
В Ведомстве по патентам и товарным знакам США зарегистрирован ряд патентов, связанных с кодированием и декодированием кода Хань Синь:
- Европейское патентное ведомство EP3330887B1 компании Fujian Landi Commercial Equipment Co Ltd «Метод и система обнаружения шаблонов особенностей кода, чувствительных к китайскому языку» [11]
- Патент США US10095903B2 компании Ingenico Fujian Technology Co Ltd «Метод и система блочного декодирования для двумерного кода». [12]
- Патент США US10528781B2 компании Ingenico Fujian Technology Co Ltd «Метод и система обнаружения характерных структур кодов Хань Синь». [13]
Приложение [ править ]
Код Хань Синь можно использовать так же, как QR-код . В настоящее время код Хань Синь используется в основном в Китае. [14] потому что он имеет встроенную возможность кодирования китайских иероглифов. Однако большинство принтеров штрих-кодов [15] и сканеры штрих-кодов [16] поддержка кода Хань Синь. Код Хань Синя можно сканировать на iOS [17] и Андроид [18] мобильные устройства и множество библиотек штрих-кодов [19] [20] поддержка чтения и записи кода Хань Синь.
Основные преимущества кода Хань Синь:
- возможность кодирования китайских иероглифов встроенными методами; [21]
- Поддержка расширенной интерпретации каналов ;
- встроенный метод компактной кодировки UTF-8 со встроенным сжатием без потерь;
- встроенный метод URI ; компактного кодирования
- компактное кодирование данных идентификаторов приложений GS1 , сравнимое с QR-кодом;
- полная ISO/IEC 646 для компактного цифрового и текстового кодирования. поддержка
Дизайн штрих-кода [ править ]
Код Хань Синь представляет данные в черно-белых квадратных модулях, где темный модуль — двоичный, а светлый — ноль. Кроме того, код Хань Синь может быть закодирован инверсными цветами. [3] : 4.1.2 но эта опция во многих сканерах штрих-кодов по умолчанию отключена. Черно-белые модули расположены в квадратную область размером от 23×23 модулей (Версия 1) до 189×189 модулей (Версия 84). Как и QR-код, код Хань Синь не имеет прямоугольных версий, как DataMatrix , и это в некоторых случаях ограничивает использование кода Хань Синь. Размер версии кода Хань Синь можно рассчитать по следующей формуле:
Кодовый символ Хань Синь состоит из следующих элементов: [3] : 4.2
- Тихая зона – окружает символ со всех четырех сторон размером как минимум в 3 раза;
- Шаблон поиска – состоит из 4 шаблонов обнаружения положения, которые размещаются во всех четырех углах символа и используются для определения положения и области символа;
- Шаблоны выравнивания и Шаблоны выравнивания помощника – запускаются с версии 4 и помогают при декодировании искаженного кода;
- Области структурной информации – окружают все четыре шаблона Finder и используются для кодирования параметров символов, таких как версия, маска и режим исправления ошибок;
- Области данных – замаскированные двоичные данные, закодированные в черно-белых модулях.
Образец поиска [ править ]
Шаблон поиска [3] : 4.2.3 состоит из четырех шаблонов определения положения, расположенных в четырех углах штрих-кода. Размер шаблона определения местоположения составляет 7×7 модулей и он состоит из 5 элементов: темных модулей 7×7, светлых модулей 6×6, темных модулей 5×5, светлых модулей 4×4, темных модулей 3×3 соответственно.
Коэффициент сканирования каждого шаблона определения положения составляет 1:1:1:1:3 или 3:1:1:1:1 (зависит от направления сканирования). Ориентация четырех шаблонов позволяет однозначно определить местоположение и ориентацию штрих-кода.
Каждый шаблон имеет разделитель шаблона определения позиции. [3] : 4.2.4 со структурной информационной областью, совмещенной с ней.
Шаблон выравнивания [ править ]
Шаблоны выравнивания [3] : 4.2.5 добавляются к коду Хань Синь из версии 4 (версии 1–3 не имеют шаблонов выравнивания) и используются для точного положения ячеек в искаженных штрих-кодах. Шаблоны выравнивания в коде Хань Синь делятся на:
- Alignment Pattern – набор ступенчатых линий выравнивания;
- Шаблон выравнивания помощника - 6 модулей, в том числе 5 светлых модулей и 1 темный модуль.
Шаблон выравнивания состоит из темной линии и прилегающей снизу светлой линии шириной в один модуль. Помощник по выравниванию, состоящий из 5 светлых модулей и 1 темного модуля, обозначает край блока региона с его темным модулем.
Ниже вы можете увидеть примеры кода Хань Синь с различным размещением шаблонов выравнивания.
- Кодекс Хань Синь, версия 1
- Кодекс Хань Синь, версия 4
- Кодекс Хань Синь, версия 22
- Кодекс Хань Синь, версия 84
Структурная информация [ править ]
Код Хань Синь Область структурной информации [3] : 4.2.7 представляет собой область шириной в один модуль, окружающую четыре шаблона определения положения. Код Хань Синь имеет два идентичных массива структурной информации, которые состоят из 34 модулей данных. Каждый массив структурной информации разделен на 17 модулей, которые размещаются вокруг каждого шаблона определения положения.
Структурная информационная область кодирует следующие данные: [3] : Приложение Е
- Версия + 20 (биты 0–7);
- Уровень коррекции ошибок (биты 8–9);
- Индекс маски (биты 10–11);
- Коррекция ошибок Данные коррекции ошибок Рида – Соломона (биты 12–27);
- Биты 28–33 игнорируются и могут быть любыми (иногда они могут быть заполнены последовательностью белого, черного цвета).
Биты метаданных от 0 до 11 разбиваются на 4-битные тетрады (m2, m1, m0) и дополняются четырьмя тетрадами исправления ошибок (r3, r2, r1, r0).
Версия + 20 | Уровень исправления ошибок | Индекс маски | Кодовые слова исправления ошибок | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
м2 | м1 | м0 | р3 | р2 | р1 | р0 | |||||||||||||||||||||
Х0 | Х1 | Х2 | Х3 | х4 | Х5 | Х6 | Х7 | х8 | Х9 | х10 | Х11 | х12 | х13 | х14 | х15 | Х16 | х17 | Х18 | Х19 | х20 | Х21 | Х22 | Х23 | Х24 | Х25 | Х26 | Х27 |
Маскирование данных [ править ]
Чтобы сделать код Хань Синь темными и светлыми модулями в символе примерно 1:1, алгоритм маскировки [3] : 5.8.4 используется. Последовательность маскировки применяется к области данных посредством операции XOR . Шаблон поиска, шаблоны выравнивания и области структурной информации исключаются из операции маскировки. В следующей таблице показаны алгоритмы шаблона маски (который размещен в области структурной информации).
Состояние маскирующего раствора | Справочник по шаблону маски данных |
---|---|
Немаскирующий | 00 |
(i+j) против 2=0 | 01 |
((i+j)mod 3+( j mod 3)) mod 2=0 | 10 |
(i mod j +j mod i + i mod 3+ j mod 3) mod 2=0 | 11 |
i - индекс строки символа.
j - Индекс столбца символа.
И i , и j начинаются с (1,1), верхнего левого угла символа. Когда условие маскирующего решения истинно, результирующий бит маски равен 1.
Исправление ошибок [ править ]
Код Хань Синь использует коррекцию ошибок Рида-Соломона . Закодированные данные представляются в виде байтового (8-битного) массива. Массив данных разделен на блоки [3] : Приложение Б и последовательность кодовых слов исправления ошибок генерируется для каждого блока, который добавляется в конец блока исправления ошибок. После этого все блоки последовательно объединяются в поток байтов.
Полиномиальная арифметика для кода Хань Синь использует полином генерации конечного поля : x^8 + x^6 + x^5 + x (355 или 101100011b). [3] : 5.5 с начальным корнем = 1.
Количество кодовых слов коррекции ошибок зависит от версии символа и уровня коррекции ошибок и может составлять от 16% до 60%, что позволяет исправить от 8% до 30% повреждений. [3] : 5.6.2
Уровень исправления ошибок | Способность восстановления % (приблизительно) | Кодирование уровня исправления ошибок |
---|---|---|
Л1 | 8% | 00 |
Л2 | 15% | 01 |
Л3 | 23% | 10 |
Л4 | 30% | 11 |
Регион данных [ править ]
Данные кода Хань Синь кодируются как массив байтов. Массив байтов данных разбивается на блоки коррекции ошибок, куда добавляются кодовые слова (байты) коррекции ошибок. Блоки коррекции ошибок объединены в один массив кодовых слов: [3] : 5.8.3
(массив кодированных байтов) => (блок исправления ошибок 1) + ... + (блок исправления ошибок N) => (массив кодовых слов)
В качестве примера это можно продемонстрировать на коде Хань Синь версии 5 с уровнем исправления ошибок L4. Он имеет 27 закодированных кодовых слов и 2 блока коррекции ошибок, каждый размер блока кодовых слов данных и кодовых слов коррекции ошибок: (14, 20), (13, 22):
(Д1...Д14, Д15...Д27) => (Д1...Д14, Е1.1...1.20) + (Д15...Д27, Е2.1...2.22) => (Д1 ...D14, E1.1...1.20, D15...D27, E2.1...2.22) => (C1...C69)
D(x) – Кодовые слова данных.
E(bx) – кодовое слово ошибки, где b – номер блока и позиция x в кадре.
C(x) - полученные кодовые слова.
Следующей операцией полученный массив кодовых слов C(x) разбивается на блоки размером 13 байт, которые соединяют кодовые слова в одной и той же позиции каждого блока и формируют новый массив кодовых слов. Результатом является массив байтов того же размера, но смешанный по позиции 13.
(С1...С13, С14...С26, Сn...Cn+12) => (С1, C14, Cn...С13, С26, Cn+12) => (CM1...CMn+12 )
CM(x) – смешанный по позициям массив из 13 кодовых слов (байт).
После верхних операций полученные кодовые слова помещаются в область данных построчно слева направо и сверху вниз. Повреждение горизонтальной линии повлияет на меньшее количество кодовых слов, повреждение вертикальной линии повлияет на большее количество кодовых слов.
Кодировка [ править ]
Код Хань Синь может кодировать 7827 цифровых символов, 4350 английских текстовых символов, 3261 байт и 1044–2174 китайских символов в максимальной версии 84. [3] : Приложение С Кроме того, он поддерживает специальные Unicode и промышленные режимы. Все режимы можно смешивать для получения наилучшего уровня компактификации данных. В следующей таблице показаны возможности кодирования данных с использованием различных версий штрих-кода и уровня исправления ошибок.
Версия | Размер | Уровень исправления ошибок | Кодовые слова данных | Кодовые слова исправления ошибок | Числовой | Текст | Байты | Китайские иероглифы |
---|---|---|---|---|---|---|---|---|
1 | 23×23 | Л1 | 21 | 4 | 45 | 26 | 18 | 6–12 |
Л4 | 9 | 16 | 15 | 10 | 6 | 2–4 | ||
... | ||||||||
22 | 65×65 | Л1 | 354 | 68 | 843 | 470 | 351 | 113–234 |
Л4 | 168 | 254 | 399 | 222 | 165 | 53–110 | ||
... | ||||||||
84 | 189×189 | Л1 | 3264 | 622 | 7827 | 4350 | 3261 | 1044–2174 |
Л4 | 1554 | 2332 | 3723 | 2070 | 1551 | 497–1034 |
Режимы кодирования [ править ]
Все режимы кодирования можно разделить на следующие группы: [3] : 5.3.1
- Числовой режим, включающий кодировку цифр: 0–9;
- Текстовый режим, поддерживающий полный ISO/IEC 646 ; набор символов
- Двоичный (байтовый) режим, в котором кодируются значения байтов 0–255;
- Режимы китайских символов, которые кодируют 1587600 различных китайских символов из кодовой страницы GB 18030 в 4 режимах;
- Кодирование Unicode с расширенной канальной интерпретации (ECI) ; режимом
- Юникод с адаптивным режимом Юникод, который кодирует кодировку UTF-8 со встроенным сжатием без потерь ;
- Режим GS1, который кодирует GS1. идентификаторы приложений [5] данные;
- Режим URI, который кодирует ссылки URI в компактном кодировании.
Режим | Индикаторы режима | Битов на символ |
---|---|---|
Числовой | 0001б | 3,3 (10 бит для трех цифр) |
Текст | 0010b | 6 |
Двоичный байт | 0011б | 8 |
Общие китайские иероглифы в первом регионе | 0100б | 12 |
Распространенные китайские иероглифы во втором регионе | 0101б | 12 |
GB18030 2-байтовый регион | 0110б | 15 |
GB18030 4-байтовый регион | 0111б | 21 |
ЭКИ | 1000б | Переменная (многобайтовый режим) |
Юникод | 1001б | Адаптивный (сжатие без потерь) |
ГС1 | 11100001б | Переменная (числовой + текстовый режимы) |
ТИП | 11100010б | Переменная (2–7 бит на символ) |
Числовой режим [ править ]
Строка входных данных в числовом режиме [3] : 5.4.4 делится на блоки по три цифры (последний блок может быть меньше трёх) и кодируется 10 битами (0000000000b – 1111100111b). Данные режима начинаются с индикатора режима 0001b и заканчиваются ограничителем режима, который также указывает количество цифр в последней группе.
Цифровые символы в последней группе | Терминатор режима |
---|---|
1 | 1111111101б |
2 | 1111111110б |
3 | 1111111111б |
Например, нам нужно закодировать последовательность цифр 12700402:
Префикс => 0001b
127 => 0001111111
004 => 0000000100
02 => 0000000010
Терминатор => 1111111110b
Текстовый режим [ править ]
В текстовом режиме кодируются символы данных, установленные в соответствии со стандартом ISO/IEC 646 . Каждый символ представлен 6 битами. [3] : 5.4.5 Все символы разделены на два подмножества: подрежим Text1 и подрежим Text2. Значение 11110b используется для переключения между текстовыми подрежимами, 111111b — признак завершения режима. Текстовый режим начинается с подрежима Text1.
Характер | ASCII-значение | Значение кодирования | Характер | ASCII-значение | Значение кодирования | Характер | ASCII-значение | Значение кодирования |
---|---|---|---|---|---|---|---|---|
0 | 48 | 000000b | л | 76 | 010101б | г | 103 | 101010б |
1 | 49 | 000001б | М | 77 | 010110б | час | 104 | 101011б |
2 | 50 | 000010b | Н | 78 | 010111б | я | 105 | 101100б |
3 | 51 | 000011б | ТО | 79 | 011000b | дж | 106 | 101101б |
4 | 52 | 000100b | П | 80 | 011001б | к | 107 | 101110б |
5 | 53 | 000101б | вопрос | 81 | 011010б | л | 108 | 101111б |
6 | 54 | 000110b | Р | 82 | 011011б | м | 109 | 110000 б |
7 | 55 | 000111b | С | 83 | 011100б | н | 110 | 110001б |
8 | 56 | 001000b | Т | 84 | 011101б | тот | 111 | 110010б |
9 | 57 | 001001б | В | 85 | 011110б | п | 112 | 110011б |
А | 65 | 001010b | V | 86 | 011111б | д | 113 | 110100б |
Б | 66 | 001011б | В | 87 | 100000б | р | 114 | 110101б |
С | 67 | 001100b | Х | 88 | 100001б | с | 115 | 110110б |
Д | 68 | 001101b | И | 89 | 100010б | т | 116 | 110111б |
И | 69 | 001110b | С | 90 | 100011б | в | 117 | 111000б |
Ф | 70 | 001111b | а | 97 | 100100б | v | 118 | 111001б |
Г | 71 | 010000b | б | 98 | 100101б | В | 119 | 111010б |
ЧАС | 72 | 010001б | с | 99 | 100110б | х | 120 | 111011б |
я | 73 | 010010б | д | 100 | 100111б | и | 121 | 111100б |
Дж | 74 | 010011б | и | 101 | 101000b | С | 122 | 111101б |
К | 75 | 010100б | ж | 102 | 101001б |
Характер | ASCII-значение | Значение кодирования | Характер | ASCII-значение | Значение кодирования | Характер | ASCII-значение | Значение кодирования |
---|---|---|---|---|---|---|---|---|
НУЛЕВОЙ | 0 | 000000b | ХОТЕТЬ | 21 | 010101б | . | 46 | 101010б |
СОХ | 1 | 000001б | СИН | 22 | 010110б | / | 47 | 101011б |
СТХ | 2 | 000010b | ЭТБ | 23 | 010111б | : | 58 | 101100б |
И Т. Д | 3 | 000011б | МОЖЕТ | 24 | 011000b | ; | 59 | 101101б |
ОТ | 4 | 000100b | В | 25 | 011001б | < | 60 | 101110б |
ENQ | 5 | 000101б | СУБ | 26 | 011010б | = | 61 | 101111б |
ПОДТВЕРЖДЕНИЕ | 6 | 000110b | ЭКУ | 27 | 011011б | > | 62 | 110000 б |
БЕЛ | 7 | 000111b | СП | 32 | 011100б | ? | 63 | 110001б |
БС | 8 | 001000b | ! | 33 | 011101б | @ | 64 | 110010б |
ХТ | 9 | 001001б | ” | 34 | 011110б | [ | 91 | 110011б |
НЧ | 10 | 001010b | # | 35 | 011111б | \ | 92 | 110100б |
ВТ | 11 | 001011б | $ | 36 | 100000б | ] | 93 | 110101б |
ФФ | 12 | 001100b | % | 37 | 100001б | ^ | 94 | 110110б |
ЧР | 13 | 001101b | & | 38 | 100010б | _ | 95 | 110111б |
ТАК | 14 | 001110b | ‘ | 39 | 100011б | ` | 96 | 111000б |
И | 15 | 001111b | ( | 40 | 100100б | { | 123 | 111001б |
В СООТВЕТСТВИИ С | 16 | 010000b | ) | 41 | 100101б | | | 124 | 111010б |
DC1 | 17 | 010001б | * | 42 | 100110б | } | 125 | 111011б |
DC2 | 18 | 010010б | + | 43 | 100111б | ~ | 126 | 111100б |
DC3 | 19 | 010011б | , | 44 | 101000b | ПРИНАДЛЕЖАЩИЙ | 27 | 111101б |
DC4 | 20 | 010100б | - | 45 | 101001б |
Двоичный байтовый режим [ править ]
Двоичный режим кодирует массив байтов [0 – 255] в любой форме. Двоичный режим [3] : 5.4.6 состоит из индикатора двоичного режима 0011b, 13-битного двоичного счетчика и байтовых данных, которые преобразуются в 8-битную последовательность. Терминатор режима не требуется.
Режимы китайских иероглифов [ править ]
Режимы китайских символов представляют собой набор из 4 режимов, которые кодируют китайские символы из кодовой страницы GB 18030 .
Режим | Индикатор режима | Биты | Количество символов кодировки | Описание |
---|---|---|---|---|
Общие китайские иероглифы в режиме «Регион один» [3] : 5.4.7 | 0100б | 12 | 4074 | Кодирует символы из регионов GB 18030, которые: значение первого байта находится в диапазоне от B0 до D7, значение второго байта находится в диапазоне от A1 до FE (3760 символов), значение первого байта находится в диапазоне от A1 до A3 и второго. Значение байта находится в диапазоне от A1 до FE (282 символа), в диапазоне от A8A1 до A8C0 (32 символа). |
Общие китайские иероглифы в режиме второго региона [3] : 5.4.8 | 0101б | 12 | 3008 | Кодирует символы из региона GB 18030, значение первого байта которого находится в диапазоне от D8 до F7, а значение второго байта — в диапазоне от A1 до FE (3008 символов). |
GB18030 2-байтовый режим региона [3] : 5.4.9 | 0110б | 15 | 23940 | Кодирует символы из региона GB 18030, значение первого байта которого находится в диапазоне от 81 до FE, а значение второго байта — в диапазоне от 40 до 7E или от 80 до FE (23940 символов). |
GB18030 4-байтовый режим региона [3] : 5.4.10 | 0111б | 21 | 1587600 | Кодирует символы из региона GB 18030, значение первого байта которого находится в диапазоне от 81 до FE, значение второго байта находится в диапазоне от 30 до 39, значение третьего байта находится в диапазоне от 81 до FE, а значение четвертого байта находится в диапазоне от 30 до 39 (1587600 символов). |
Режим Юникода [ править ]
Режим Юникод [3] : 5.4.12 кодирует кодировку UTF-8 со встроенным сжатием без потерь . В режиме Unicode входные данные анализируются с помощью самоадаптивного алгоритма. Во-первых, входные данные разделяются и объединяются в подпоследовательности предварительного кодирования шаблона размером 1, 2, 3 или 4 байта, а во-вторых, для кодирования каждой подпоследовательности входных данных применяется алгоритм сжатия данных по длине серии.
Короче говоря, режим Unicode ищет подстраницы символов, которые могут иметь одинаковую последовательность префиксов для всех символов одного и того же языка (кириллица, греческий, французский, немецкий... языки) и кодирует только отличия от последовательности байтов префикса.
Режим GS1 [ править ]
Код Хань Синь, режим GS1 [3] : 5.4.13 является индикатором того, что представленные данные определены Общей спецификацией GS1. Режим GS1 кодирует данные в числовом и текстовом режимах. Можно использовать и другие режимы, но режим GS1 должен быть первым.mode в символе и закодированные данные должны быть возвращены с флагом GS1. <FNC1> (если требуется) должен быть закодирован как 1111101000b в числовом режиме (числовой режим кодирует только три цифры, поэтому значение 1111101000b => 1000 считается специальным символом). Если необходимо вставить идентификатор <FNC1> и кодер находится в любом режиме, отличном от числового, этот режим необходимо завершить и запустить числовой режим. Индикатор режима GS1 — 11100001b, а терминатор режима GS1 — 11111111b.
Данные в режиме GS1 разбиваются на каналы идентификаторов приложений GS1, а затем сжимаются с использованием лучших режимов. Например, могут быть закодированы следующие данные:
(10)123456ABC<FNC1>(240)ДАННЫЕ
Данные кодируются следующим образом:
<11100001b> <Число 10123456> <Текст ABC> <Выбор числового режима> <1111101000b> <Число 240> <Текст ДАННЫЕ> <11111111b>
Режим URI [ править ]
Режим URI кода Хань Синь [3] : 5.4.14 кодирует ссылки URI в компактной кодировке. Индикатор режима URI — 11100010b, а признак завершения режима URI — 111b. Режим URI может кодировать данные в трех кодировках: URI-A, URI-B, URI-C. [3] : Приложение М с собственными терминаторами подрежимов. Режим URI может кодировать данные %XX в специальном подрежиме процентного кодирования, где три символа кодируются в 8 битах.
Кодировка | Индикатор кодировки |
---|---|
URI-A | 001б |
URI-B | 010б |
МОЧЕВОЙ | 011б |
Процентное кодирование | 100б |
Теминатор режима URI | 111б |
Подрежим Percent-Encoding кодирует данные %XX в 8-битной последовательности. Режим не требует терминатора. Для кодирования данных URI %XX в этом режиме необходимо добавить индикатор подрежима (100b), затем добавить 8-битный индикатор последовательности 8 бит подрежима (счетчик = длина %XX / 3) и после этой последовательности , где %FF, %ff или %00 необходимо добавить как байты xFF или x00.
Кодировка URI-A | Кодировка URI-B | ||||
---|---|---|---|---|---|
Символ/фрагмент URI | Значение кодирования | Биты кодирования | Символ/фрагмент URI | Значение кодирования | Биты кодирования |
а | 0 | 000000 | А | 0 | 000000 |
б | 1 | 000001 | Б | 1 | 000001 |
с | 2 | 000010 | С | 2 | 000010 |
д | 3 | 000011 | Д | 3 | 000011 |
и | 4 | 000100 | И | 4 | 000100 |
ж | 5 | 000101 | Ф | 5 | 000101 |
г | 6 | 000110 | Г | 6 | 000110 |
час | 7 | 000111 | ЧАС | 7 | 000111 |
я | 8 | 001000 | я | 8 | 001000 |
дж | 9 | 001001 | Дж | 9 | 001001 |
к | 10 | 001010 | К | 10 | 001010 |
л | 11 | 001011 | л | 11 | 001011 |
м | 12 | 001100 | М | 12 | 001100 |
н | 13 | 001101 | Н | 13 | 001101 |
тот | 14 | 001110 | ТО | 14 | 001110 |
п | 15 | 001111 | П | 15 | 001111 |
д | 16 | 010000 | вопрос | 16 | 010000 |
р | 17 | 010001 | Р | 17 | 010001 |
с | 18 | 010010 | С | 18 | 010010 |
т | 19 | 010011 | Т | 19 | 010011 |
в | 20 | 010100 | В | 20 | 010100 |
v | 21 | 010101 | V | 21 | 010101 |
В | 22 | 010110 | В | 22 | 010110 |
х | 23 | 010111 | Х | 23 | 010111 |
и | 24 | 011000 | И | 24 | 011000 |
С | 25 | 011001 | С | 25 | 011001 |
0 | 26 | 011010 | ! | 26 | 011010 |
1 | 27 | 011011 | * | 27 | 011011 |
2 | 28 | 011100 | ( | 28 | 011100 |
3 | 29 | 011101 | ) | 29 | 011101 |
4 | 30 | 011110 | , | 30 | 011110 |
5 | 31 | 011111 | { | 31 | 011111 |
6 | 32 | 100000 | } | 32 | 100000 |
7 | 33 | 100001 | | | 33 | 100001 |
8 | 34 | 100010 | \ | 34 | 100010 |
9 | 35 | 100011 | ^ | 35 | 100011 |
. | 36 | 100100 | [ | 36 | 100100 |
/ | 37 | 100101 | ] | 37 | 100101 |
- | 38 | 100110 | ' | 38 | 100110 |
_ | 39 | 100111 | < | 39 | 100111 |
~ | 40 | 101000 | > | 40 | 101000 |
: | 41 | 101001 | % | 41 | 101001 |
@ | 42 | 101010 | " | 42 | 101010 |
? | 43 | 101011 | ; | 43 | 101011 |
# | 44 | 101100 | .htm | 44 | 101100 |
= | 45 | 101101 | .html | 45 | 101101 |
+ | 46 | 101110 | .asp | 46 | 101110 |
$ | 47 | 101111 | .aspx | 47 | 101111 |
& | 48 | 110000 | .php | 48 | 110000 |
http:// | 49 | 110001 | .jsp | 49 | 110001 |
https:// | 50 | 110010 | Гтин | 50 | 110010 |
FTP:// | 51 | 110011 | быть | 51 | 110011 |
электронная почта: | 52 | 110100 | один | 52 | 110100 |
ldap:// | 53 | 110101 | опыт | 53 | 110101 |
тел: | 54 | 110110 | поиск | 54 | 110110 |
урна: | 55 | 110111 | идентификатор | 55 | 110111 |
www. | 56 | 111000 | .jp | 56 | 111000 |
.с | 57 | 111001 | .это | 57 | 111001 |
.сеть | 58 | 111010 | .из | 58 | 111010 |
.gov | 59 | 111011 | .br | 59 | 111011 |
.org | 60 | 111100 | .fr | 60 | 111100 |
.cn | 61 | 111101 | gs1 | 61 | 111101 |
Перейти к URI-B | 62 | 111110 | Перейти к URI-A | 62 | 111110 |
Терминатор URI-A | 63 | 111111 | Терминатор URI-B | 63 | 111111 |
Символ/фрагмент URI | Значение кодирования | Биты кодирования | Символ/фрагмент URI | Значение кодирования | Биты кодирования | Символ/фрагмент URI | Значение кодирования | Биты кодирования |
---|---|---|---|---|---|---|---|---|
А | 0 | 0000000 | Р | 43 | 0101011 | ; | 86 | 1010110 |
Б | 1 | 0000001 | С | 44 | 0101100 | / | 87 | 1010111 |
С | 2 | 0000010 | Т | 45 | 0101101 | ? | 88 | 1011000 |
Д | 3 | 0000011 | В | 46 | 0101110 | : | 89 | 1011001 |
И | 4 | 0000100 | V | 47 | 0101111 | @ | 90 | 1011010 |
Ф | 5 | 0000101 | В | 48 | 0110000 | & | 91 | 1011011 |
Г | 6 | 0000110 | Х | 49 | 0110001 | = | 92 | 1011100 |
ЧАС | 7 | 0000111 | И | 50 | 0110010 | http:// | 93 | 1011101 |
я | 8 | 0001000 | С | 51 | 0110011 | https:// | 94 | 1011110 |
Дж | 9 | 0001001 | 0 | 52 | 0110100 | FTP:// | 95 | 1011111 |
К | 10 | 0001010 | 1 | 53 | 0110101 | электронная почта: | 96 | 1100000 |
л | 11 | 0001011 | 2 | 54 | 0110110 | ldap:// | 97 | 1100001 |
м | 12 | 0001100 | 3 | 55 | 0110111 | тел: | 98 | 1100010 |
Н | 13 | 0001101 | 4 | 56 | 0111000 | урна: | 99 | 1100011 |
ТО | 14 | 0001110 | 5 | 57 | 0111001 | www. | 100 | 1100100 |
П | 15 | 0001111 | 6 | 58 | 0111010 | .с | 101 | 1100101 |
вопрос | 16 | 0010000 | 7 | 59 | 0111011 | .сеть | 102 | 1100110 |
Р | 17 | 0010001 | 8 | 60 | 0111100 | .gov | 103 | 1100111 |
С | 18 | 0010010 | 9 | 61 | 0111101 | .org | 104 | 1101000 |
Т | 19 | 0010011 | $ | 62 | 0111110 | .cn | 105 | 1101001 |
В | 20 | 0010100 | - | 63 | 0111111 | .htm | 106 | 1101010 |
V | 21 | 0010101 | _ | 64 | 1000000 | .html | 107 | 1101011 |
В | 22 | 0010110 | . | 65 | 1000001 | .asp | 108 | 1101100 |
Х | 23 | 0010111 | + | 66 | 1000010 | .aspx | 109 | 1101101 |
И | 24 | 0011000 | ! | 67 | 1000011 | .php | 110 | 1101110 |
С | 25 | 0011001 | * | 68 | 1000100 | .jsp | 111 | 1101111 |
А | 26 | 0011010 | ( | 69 | 1000101 | Гтин | 112 | 1110000 |
Б | 27 | 0011011 | ) | 70 | 1000110 | быть | 113 | 1110001 |
С | 28 | 0011100 | , | 71 | 1000111 | один | 114 | 1110010 |
Д | 29 | 0011101 | { | 72 | 1001000 | опыт | 115 | 1110011 |
И | 30 | 0011110 | } | 73 | 1001001 | поиск | 116 | 1110100 |
Ф | 31 | 0011111 | | | 74 | 1001010 | идентификатор | 117 | 1110101 |
Г | 32 | 0100000 | \ | 75 | 1001011 | .jp | 118 | 1110110 |
ЧАС | 33 | 0100001 | ^ | 76 | 1001100 | .это | 119 | 1110111 |
я | 34 | 0100010 | ~ | 77 | 1001101 | .из | 120 | 1111000 |
Дж | 35 | 0100011 | [ | 78 | 1001110 | .br | 121 | 1111001 |
К | 36 | 0100100 | ] | 79 | 1001111 | .fr | 122 | 1111010 |
л | 37 | 0100101 | ' | 80 | 1010000 | gs1 | 123 | 1111011 |
М | 38 | 0100110 | < | 81 | 1010001 | поиск | 124 | 1111100 |
Н | 39 | 0100111 | > | 82 | 1010010 | Перейти к URI-A | 125 | 1111101 |
ТО | 40 | 0101000 | # | 83 | 1010011 | Перейти к URI-B | 126 | 1111110 |
П | 41 | 0101001 | % | 84 | 1010100 | Терминатор URI-C | 127 | 1111111 |
вопрос | 42 | 0101010 | " | 85 | 1010101 |
См. также [ править ]
- Автоматизированная идентификация и сбор данных (AIDC)
- Штрих-код
- Расширенная интерпретация канала
- Национальный стандарт Великобритании
- ГС1
- QR-код
Ссылки [ править ]
- ↑ Перейти обратно: Перейти обратно: а б ГБ/Т (2007). «GB/T 21049-2007 «Китайский код» » . www.chinesestandardslibrary.com (на китайском языке). Национальный стандарт Великобритании . ГБ/Т 21049-2007.
- ^ «Центр нумерации статей Китая» www.ancc.org.cn ( на китайском языке).
- ↑ Перейти обратно: Перейти обратно: а б с д и ж г час я дж к л м н тот п д р с т в v В х и С аа аб ИСО/МЭК (2021). «ISO/IEC 20830:2021 «Информационные технологии. Методы автоматической идентификации и сбора данных. Спецификация символики штрих-кода кода Хань Синь » . iso.org . Международная организация по стандартизации (ISO) . ИСО/МЭК 20830.
- ^ Стефания Зокко. «QR-коды в современном Китае: цифровые деньги и восприятие людей» (PDF) . dspace.unive.it . Университет Ка'Фоскари в Венеции.
- ↑ Перейти обратно: Перейти обратно: а б «Идентификаторы приложений GS1» . www.gs1.org .
- ^ Донг Сяовэнь; Ван Ли (31 августа 2021 г.). «Официально выпущен первый международный стандарт кодирования QR-кодов» , www.ancc .org.cn (на китайском языке).
- ^ «Новости RFID и AIDC: Новая символика штрих-кода для двухбайтовых символов» . www.scdigest.com . Дайджест цепочки поставок.
- ^ «Спецификация символики кода МКС Хань Синь - Версия 3.0» . aimglobal.org . АИМ Глобал.
- ^ Лю Цзя (16 сентября 2015 г.). «Код Hanxin официально становится рабочим элементом международного стандарта ISO (код Hanxin официально становится рабочим элементом международного стандарта ISO)» www.ancc.org.cn ( на китайском языке). Центр нумерации статей Китая).
- ^ ГБ/Т (2022 г.). «GB/T 21049-2022 «Код Хань Синь» » . www.chinesestandard.net (на китайском языке). Национальный стандарт Великобритании . ГБ/Т 21049-2022.
- ^ Шэнчжан Цзян; Вэйдун Ву (2 августа 2016 г.). «Европейское патентное ведомство EP3330887B1 компании Fujian Landi Commercial Equipment Co Ltd «Метод и система обнаружения шаблонов особенностей кода, чувствительных к китайскому языку» » . патенты.google.com . Европейское патентное ведомство.
- ^ Шэнчжан Цзян; Вэйдун Ву (15 января 2018 г.). «Патент США US10095903B2 от Ingenico Fujian Technology Co Ltd «Способ и система блочного декодирования для двумерного кода » . патенты.google.com . Ведомство США по патентам и товарным знакам.
- ^ Шэнчжан Цзян; Вэйдун Ву (13 февраля 2018 г.). «Патент США US10528781B2, выданный Ingenico Fujian Technology Co Ltd «Метод и система обнаружения характерных структур кодов Хань Синь» » . патенты.google.com . Ведомство США по патентам и товарным знакам.
- ^ «Код Хань Синь» . www.ancc.org.cn. GS1 Китай.
- ^ «Настольный термопринтер штрих-кодов PC42D» . www.honeywell.com .
- ^ «Юнитек МС852Б» . dcs.aero .
- ^ Ши Ю. «Код Хань Синь» . han-xin-code.appstor.io (на китайском языке).
- ^ Чжэн Юй (2 сентября 2013 г.). «Использовали ли вы китайский QR-код?» www.ancc.org.cn ( на китайском языке).
- ^ «Создание штрих-кодов кода Хань Синь на C#» . www.aspose.com .
- ^ «Международная техническая спецификация AIM - Библиотека кодирования кода Хань Синь для .Net» . github.com .
- ^ Сяолэй Юй; Дунхуа Ван; Чжиминь Чжао (2018). Технология полуфизической проверки динамической производительности системы Интернета вещей . Спрингер. п. 181. ИСБН 978-9811317590 .