Режими на кодиране

Известен още като: режими на данни, цифров режим, буквено-цифров режим, байтов режим, кандзи режим

Определение

Режимите на кодиране са начините, по които QR кодът пакетира знаците в битове. Четирите основни режима са цифров, буквено-цифров, байтов и кандзи, а един код може да превключва между тях.

Прегледано от екипа на AriaQR ·

Режими на кодиране

Четирите основни режима

Всеки режим разменя обхват на знаците за плътност. Цифровият режим обработва само цифри, но пакетира по три от тях в 10 бита, докато байтовият режим обработва всеки байт, но изразходва 8 бита за всеки.

Буквено-цифровият режим покрива набор от 45 знака: цифрите 0–9, главните букви A–Z, интервала и символите $ % * + - . / и двоеточие. Малките букви не са в набора, затова URL адрес изцяло с главни букви може да даде по-малък код от същия адрес с малки.

Режими на кодиране (2)
  • Цифров: цифри 0–9, 10 бита за 3 цифри
  • Буквено-цифров: 45 знака, 11 бита за 2 знака
  • Байтов: всяка 8-битова стойност, 8 бита на байт
  • Кандзи: двубайтови знаци на Shift JIS, по 13 бита всеки

Индикатори на режима и сегменти

Всяка серия от данни започва с 4-битов индикатор на режима и брой знаци, чиято дължина зависи от режима и версията. Кодът може да съдържа няколко такива сегмента, например цифров за дълга редица от цифри и байтов за останалото, което може да направи резултата по-малък.

Други 4-битови индикатори означават функции, а не набори от знаци: ECI за деклариране на кодиране на знаци, structured append за разделяне на данни между кодове и FNC1 за GS1 и други отраслови формати на данни. Терминатор от четири нулеви бита приключва данните.

  • Цифров 0001, буквено-цифров 0010, байтов 0100, кандзи 1000
  • ECI 0111, structured append 0011
  • FNC1 на първа позиция 0101, на втора позиция 1001
  • Терминатор 0000

Байтов режим и набори от знаци

Тълкуването по подразбиране на байтовия режим в стандарта е ISO-8859-1 (Latin-1), но повечето генератори днес записват UTF-8, така че буквите с диакритици, другите писмености и емоджитата да се запазят. Четците обикновено разпознават UTF-8 чрез проверка на байтовете.

Когато наборът от знаци трябва да е недвусмислен, ECI заглавка може да го декларира изрично. Без такава четецът понякога може да налучка погрешно и да покаже изкривени знаци.

Често задавани въпроси

Защо QR кодът ми е по-голям с малки букви?

Малките букви не са в буквено-цифровия набор, така че текстът трябва да използва байтов режим с 8 бита на знак вместо 5,5. Главните букви, цифрите и няколко символа се пакетират по-плътно.

Може ли QR код да съхранява емоджи или нелатински текст?

Да, в байтов режим с UTF-8, който се поддържа от повечето генератори и телефонни четци. Всеки такъв знак заема няколко байта, така че капацитетът намалява.

Може ли един QR код да смесва цифрови данни и текст?

Да. Данните могат да се разделят на сегменти, всеки със собствен режим, а добрите кодери избират разделянето, което дава най-малък код.

Източници и стандарти

Всички термини