Режими кодування

Також відомо як: режими даних, цифровий режим, буквено-цифровий режим, байтовий режим, режим кандзі, encoding modes

Визначення

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

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

Кожен режим обмінює діапазон символів на щільність. Цифровий режим обробляє лише цифри, але пакує по три з них у 10 бітів, тоді як байтовий режим обробляє будь-який байт, але витрачає 8 бітів на кожен.

Буквено-цифровий режим охоплює набір із 45 символів: цифри 0-9, великі літери A-Z, пробіл і символи $ % * + - . / та двокрапку. Малих літер у наборі немає, тому адреса, написана лише великими літерами, може дати менший код, ніж та сама адреса малими.

  • Цифровий: цифри 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-код поєднувати цифрові дані й текст?

Так. Дані можна розбити на сегменти, кожен зі своїм режимом, а добрі кодувальники обирають розбиття, що дає найменший код.

Джерела та стандарти

Усі терміни