Code 128Linear (1D)Introduced 1981

Code 128A

Code 128 locked to code set A — uppercase letters, digits, and ASCII control characters.

Code 128A Specification

Character setDigits 0-9, uppercase A-Z, ASCII control characters (NUL-US), and - . / : + % $ space (ASCII 0-63)
Data lengthVariable; no fixed minimum or maximum
Check digitMandatory Mod 103 check character, appended automatically
Density≈12 characters per inch at the minimum 0.19 mm X-dimension
Module width (X-dimension)0.19-0.50 mm typical
Print ratioVariable-width bars and spaces
MagnificationScales linearly with the chosen X-dimension
Quiet zone10X on each side
StandardISO/IEC 15417
OriginTed Williams, Computer Identics, 1981
Sample dataABC123

Try It: Generate a Code 128A Barcode

This live generator is preconfigured for Code 128A. Adjust size, colors, and text — then download as PNG or SVG. Free, no signup, all encoding happens in your browser.

Open the full Code 128A generator →

What Is Code 128A?

Code 128A is Code 128 restricted to code set A, the subset covering ASCII values 0-63: digits 0-9, uppercase A-Z, and the non-printing control characters (NUL through US) plus six punctuation marks. It was designed for industrial systems that exchange data including control characters — for example, batch headers containing ESC or STX separators, or legacy host protocols that embed control codes in scanned fields.

In practice, Code 128A appears mostly in older inter-system integrations. Because lowercase letters are impossible in code set A, any input containing a lowercase character will fail validation. Modern systems almost always choose Code 128 (auto) or Code 128B instead; the auto encoder reaches code set A automatically whenever true control characters appear in the data.

Common Applications

  • Legacy systems exchanging ASCII control characters
  • Industrial equipment interface labels
  • Fixed-format batch data with control separators

Code 128A FAQ

Why does my lowercase text fail in Code 128A?

Code set A simply has no symbols for lowercase letters — it only covers ASCII 0-63. If your data contains lowercase characters, use Code 128B or Code 128 (auto), which both include the full lowercase alphabet. Locking to 128A is only correct when your data genuinely contains control characters.

When is locking to Code 128A preferable to auto mode?

Only when a receiving system mandates a strict single-code-set symbol — for example, some legacy warehouse controllers parse the raw code-set stream and reject subset shifts. Otherwise auto mode is always safer: it produces a valid Code 128 symbol that is still scannable by every reader.