Code 128 C Generator

Code 128 subset C: digit pairs encoded compactly — standard for carton labels and serial numbers.

How Code 128 C is structured

Subset C packs digits in pairs: one 11-module symbol character per two input digits, drawn from the 100 patterns that map 00 to 99. A 10-digit serial therefore uses five characters instead of ten, which is why C is the densest way to print a numeric key in Code 128. The payload must contain an even number of digits and nothing else — no letters, no separators.

Code 128 C check digit

The mod-103 check character is seeded by the start value 105. Because a subset C character represents two digits, the position weight steps once per pair; the check character itself may fall in either subset when the encoder needs it to. Readers validate the sequence and return the plain digit string.

Code 128 C compared with Code 128

ITF also encodes digit pairs and also needs an even count, but ITF prints wider bars for the same data and is at home on corrugated board. Subset C keeps Code 128's small module structure, so it stays readable on a tight label where an ITF would not fit. Against subset B, C is strictly for digits. Compare the Code 128 generator page for the same breakdown of structure, check digit and use cases.

Common Code 128 C problems

An odd number of digits is rejected

Subset C has no way to encode a single trailing digit. Add a leading zero to make the count even — a standard move for numeric keys — or generate the payload as subset B if the leading zero would change the meaning.

Spreadsheet formatting strips the leading zeros

A numeric cell drops the leading zero before the value reaches the encoder, shifting every digit pair. Format the column as text in the spreadsheet, then re-run the batch so the exact digit string survives.

The symbol scans as a different number of digits

If a reader is set to auto and the data contains a leading zero, some firmwares read it as subset B instead and pad differently. Verify with the reader that will actually be used at the point of capture, not only with the preview.

Where Code 128 C is used

Not sure this is the right symbology? The barcode format guide groups every supported 1D and 2D format by industry with its character set and limits.