Кодовые наборы A, B и C
Code 128 переключается между тремя кодовыми наборами, чтобы эффективно вмещать данные разного вида. Набор A охватывает заглавные буквы, цифры и управляющие символы; набор B — заглавные и строчные буквы, цифры и знаки препинания; набор C упаковывает по две цифры в каждый символ, благодаря чему длинные числа получаются очень компактными.
Каждый символ имеет ширину 11 модулей и состоит из 3 штрихов и 3 пробелов, а стоповый узор занимает 13 модулей. Кодировщик может переключать наборы посреди штрихкода, чтобы сделать его как можно короче.
Контрольный символ
Каждый штрихкод Code 128 заканчивается обязательным контрольным символом. Его вычисляют так: к значению стартового символа прибавляют сумму значений каждого символа данных, умноженных на его позицию, и берут остаток от деления на 103. Контрольный символ в удобочитаемом тексте не показывают.
GS1-128 в логистике
GS1-128 — это Code 128 с символом FNC1 после стартового, который помечает содержимое как идентификаторы применения GS1. Это стандартный линейный штрихкод на транспортных и паллетных этикетках, где он часто несёт SSCC (идентификатор применения 00) вместе с GTIN, номерами партий и датами.
Code 128 определён в ISO/IEC 15417 и широко используется для отгрузки, складского учёта и внутренних этикеток.