QRkoder

Alphanumeric mode (QR)

Alphanumeric mode — режим кодирования QR с алфавитом из 45 символов (0–9, A–Z, спец. знаки). 11 бит на 2 символа, до 4296 символов в QR-40. Только верхний регистр.

Что такое alphanumeric mode

Alphanumeric mode — один из четырёх базовых режимов кодирования данных в QR-коде, определённых стандартом ISO/IEC 18004. Идентификатор режима в битовом заголовке символа: 0010. Режим предназначен для компактной упаковки текста, состоящего исключительно из прописных латинских букв, цифр и ограниченного набора специальных знаков.

Кодировщик QR-кода выбирает режим автоматически, анализируя содержимое входной строки. Если все символы входят в алфавит alphanumeric — применяется этот режим как более эффективный. Если хотя бы один символ выходит за его пределы (например, строчная буква или кириллица), кодировщик переключается на byte mode.

45-символьный алфавит

Alphanumeric mode поддерживает ровно 45 символов, каждому из которых стандарт присваивает числовое значение от 0 до 44:

ГруппаСимволыЗначения
Цифры0–90–9
Буквы (верхний регистр)A–Z10–35
Специальные знакипробел, $, %, *, +, -, ., /, :36–44

Пары символов кодируются одним блоком из 11 бит по формуле значение1 × 45 + значение2. Одиночный символ в конце нечётной строки кодируется 6 битами. Это даёт среднюю плотность 5,5 бит на символ — заметно лучше, чем 8 бит у byte mode для того же ASCII-символа.

Эффективность хранения

Alphanumeric mode на 30–40% компактнее, чем byte mode, при передаче строк из разрешённого набора символов. Ёмкость QR-кода версии 40 с уровнем коррекции L в этом режиме составляет 4296 символов — против 2953 байт у byte mode при тех же версии и уровне.

Для сравнения: numeric mode (только цифры) ещё плотнее — 3,33 бит/символ. Но он не принимает буквы. Alphanumeric занимает среднее положение: шире alphabet numeric, уже byte. Выбор режима напрямую влияет на версию QR-кода, а значит — на размер и сложность матрицы.

РежимБит/символЁмкость в QR-40 L
Numeric~3,337089 цифр
Alphanumeric5,54296 символов
Byte82953 байта

Когда выбирать alphanumeric mode

Режим подходит для данных, которые изначально содержат только прописные буквы и допустимые спецсимволы:

  • Серийные номера и артикулы — промышленная маркировка типа SN-2024-AX7B, коды складской логистики.
  • URL в верхнем регистре — некоторые системы генерируют ссылки вида HTTP://EXAMPLE.COM/PROMO/123. Именно поэтому QR-коды на упаковке часто содержат URL заглавными буквами: это не стилистика, а техническое решение для экономии битов.
  • Коды лотерей и акционные купоны — строки типа SALE2024WINTER или CODE-1234-XYZ.
  • Идентификаторы без чувствительности к регистру — когда принимающая система сама приводит к upper case.

Если контент содержит строчные буквы, кириллицу, спецсимволы вне алфавита (например, @, &, #) или произвольный бинарный поток — alphanumeric не подойдёт. Здесь нужен byte mode, который покрывает весь Latin-1 и UTF-8 через многобайтовое кодирование.

Практически это означает: ссылку https://qrkoder.ru/promo нельзя закодировать alphanumeric (строчные буквы, нет https с двоеточием в нижнем регистре как :// — двоеточие есть, но https нижний регистр блокирует). Зато HTTPS://QRKODER.RU/123 — уже можно, это снижает версию QR-кода и делает матрицу меньше.

Частые вопросы

Почему в alphanumeric mode нет строчных букв?

Стандарт ISO/IEC 18004 формировался в начале 1990-х под задачи промышленной автоматической идентификации. Основная сфера применения тогда — маркировка автомобильных деталей на производстве Toyota. В этом контексте все идентификаторы были прописными ASCII. Включение строчных букв удвоило бы алфавит (с 45 до ~71 символа), что уменьшило бы эффективность кодирования. Было принято решение: строчные переходят в byte mode, а alphanumeric остаётся компактным режимом для верхнего регистра. Это разделение сохраняется во всех редакциях стандарта, включая ISO/IEC 18004:2015.

Можно ли вручную выбрать режим кодирования в QR-генераторе?

Большинство онлайн-генераторов, включая QRkoder, выбирают режим автоматически — анализируют входную строку и применяют минимально достаточный режим. Ручное управление режимом доступно в программных библиотеках: например, в qrcode (Python) или @liquid-js/qr-code-styling (JavaScript) можно явно передать сегменты данных с указанием режима. Это полезно при смешанном кодировании (mixed mode): часть строки цифровая — numeric, часть — буквенная, alphanumeric. Кодировщик тогда разбивает данные на сегменты и минимизирует суммарный объём битов.

Почему URL в QR-коде иногда набирают заглавными буквами?

Это намеренная оптимизация: URL вида HTTPS://EXAMPLE.COM/PAGE, записанный заглавными буквами, целиком попадает в alphanumeric mode, который в 1,45 раза плотнее byte mode. Результат — QR-код меньшей версии, с более крупными модулями, которые лучше читаются с расстояния или при печати малого формата. Домены и пути в URL нечувствительны к регистру, поэтому переход https://HTTPS:// технически корректен. Обратите внимание: если в path есть параметры вида ?ref=promo&id=42 — символ & вне алфавита alphanumeric, и byte mode неизбежен.

Как alphanumeric mode влияет на размер QR-кода?

Режим кодирования напрямую определяет нужную версию QR-кода, а значит — размер матрицы. Одна и та же строка из 20 символов (допустим, HTTP://EXAMPLE.COM/X) займёт версию 1 (21×21) в alphanumeric mode, но потребует версию 2 (25×25) в byte mode. Разница кажется небольшой, но при печати на этикетке 1×1 см это принципиально: более крупные модули снижают риск нечитаемости. На практике разработчики систем маркировки всегда проверяют, укладывается ли идентификатор в alphanumeric, прежде чем передавать строку byte-кодировщику.

Какие специальные символы входят в алфавит alphanumeric?

Стандарт ISO/IEC 18004 включает девять специальных символов: пробел, знак доллара ($), процент (%), звёздочку (*), плюс (+), дефис-минус (-), точку (.), косую черту (/) и двоеточие (:). Именно эти девять знаков достаточны для записи URL верхним регистром, серийных номеров с разделителями и кодов, построенных по шаблону XXXX-NNN/YYYY. Любой другой символ — например, нижнее подчёркивание, собака, решётка или скобки — выведет строку за пределы режима и потребует byte mode.

Создавайте QR-коды бесплатно

Динамические QR-коды с аналитикой, дизайном и без ограничений по сканированиям.

Начать бесплатно