Полезная нагрузка QR
Полезная нагрузка QR (payload) — данные внутри QR-кода без служебных битов и блоков коррекции ошибок. Включает режим, длину и сам контент: URL, vCard, WIFI, текст.
Определение
Полезная нагрузка QR (QR payload) — фактические данные внутри QR-кода без служебных областей и байтов коррекции ошибок Reed-Solomon. Именно payload смартфон интерпретирует как ссылку, контакт или пароль Wi-Fi.
Структура полезной нагрузки
Каждый блок данных в QR (ISO/IEC 18004) состоит из четырёх частей: индикатор режима (4 бита) — Numeric 0001, Alphanumeric 0010, Byte 0100, Kanji 1000; индикатор длины (8–16 бит, зависит от режима и версии); сами данные; терминатор 0000 — четыре нулевых бита конца потока.
Ёмкость по версиям QR
Чем длиннее payload, тем крупнее требуется версия QR. QR-1 (21×21) при ECC L вмещает 41 цифру или 17 байт; QR-40 (177×177) при ECC L — 7089 цифр или 2953 байта. На фиксированной площади печати больший код означает более мелкие модули и повышенный риск ошибок сканирования. Для payload длиннее 200 байт рекомендуется сокращать ссылку через QRkoder — это снижает версию на 3–5 уровней.
Типы payload: URL, vCard, WiFi, GEO
Наиболее распространённые форматы, которые смартфоны распознают автоматически: https://… (URL), BEGIN:VCARD…END:VCARD (контакт, 150–300 байт), WIFI:T:WPA;S:Net;P:pass;; (подключение к сети, 30–80 байт), geo:55.75,37.61 (координаты, ~25 байт), mailto:, tel:, sms: и bitcoin: — для почты, звонков, сообщений и крипто-платежей соответственно.
Частые вопросы
Чем payload отличается от всего содержимого QR?
Матрица QR включает служебные метки (Finder, Timing, Alignment Pattern), информацию о формате и версии, блоки коррекции ошибок и сами данные. Payload — только данные. В QR версии 1 уровня L они занимают ~57% модулей, в версии 40 — ~80%: служебные области растут медленнее области данных.
Сколько символов URL помещается в минимальный QR?
QR версии 1 (21×21, ECC L) — 17 байт в Byte-режиме. URL с UTM-метками длиной 150–200 символов требует версии 6–9. Сокращённая ссылка переводит такой адрес в QR версии 3: меньше модулей, надёжнее на печати.
Почему длинный payload снижает читаемость кода?
Длинный payload требует крупной версии, а значит мелких модулей на той же площади. При размере модуля менее 0,3 мм погрешности печати накапливают ошибки сверх лимита Reed-Solomon — код перестаёт читаться. Сокращение payload на 30–50% нередко снижает версию с 8 до 5.
Можно ли зашить два типа данных в один QR?
Смешивать режимы кодирования (Numeric + Byte) внутри одного потока генераторы умеют автоматически. Но два независимых «документа» — URL и vCard — в одном QR не работают: сканер читает их как единый поток без разделителей формата.
Как узнать длину payload в готовом QR?
Отсканируйте код — число символов в результате и есть приблизительная длина payload. Точный режим и байты покажут онлайн-декодеры с низкоуровневым выводом или панель генератора QRkoder при создании кода.