Free Code 128A Barcode Generator — Uppercase & Control Character Encoding
Generate Code 128A barcodes online for free. Code 128A encodes uppercase letters (A–Z), digits (0–9), and ASCII control characters (NUL–US) — the required subset for shipping labels, GS1 logistics, and any system that uses non-printable control codes such as FNC1. Download as PNG or SVG instantly. No signup, no watermarks, no limits.
What Is Code 128A?
Code 128A is a fixed-subset variant of the Code 128 symbology that encodes characters from ASCII positions 0x00 to 0x5F: digits 0–9, uppercase letters A–Z, space, common punctuation, and the 32 ASCII control characters (NUL, SOH, STX… through GS, RS, US). It is one of three encoding subsets defined in ISO/IEC 15417. Unlike Code 128 (auto mode), Code 128A does not switch subsets — every character in the barcode is encoded using Subset A encoding tables. This makes Code 128A the correct choice when your data contains control characters, when a receiving system explicitly requires Subset A, or when encoding uppercase-only data for legacy scanner compatibility.
- Encodes ASCII Control Characters (NUL–US)Code 128A is the only Code 128 subset that can directly encode ASCII control characters without special escape sequences. Characters 0x00 (NUL) through 0x1F (US) — including SOH, STX, ETX, EOT, TAB, LF, CR, ESC, and others — are encoded as standard symbol characters. This makes Code 128A essential for GS1 FNC1-initiated barcodes, EDI message encoding, and any barcode system that uses control codes as field delimiters.
- Uppercase Letters and Full Digit SupportIn addition to control characters, Code 128A encodes all 26 uppercase letters (A–Z), all 10 digits (0–9), space, and a standard set of punctuation marks including !, ", #, $, %, &, ', (, ), *, +, comma, -, ., /, :, ;, <, =, >, ?, @. This covers the complete character set used in most shipping, logistics, and industrial barcode applications where lowercase letters are not required.
- Mandatory Check Character via Mod 103Like all Code 128 variants, Code 128A includes a Mod 103 check character appended automatically at encoding time. The check character is derived from a weighted sum of all encoded symbol values and is verified by the scanner during decoding. Any barcode with a mismatched check character is rejected before data is passed to the host system, providing reliable first-pass error detection.
- Shipping and Logistics System CompatibilityMany legacy warehouse management systems, shipping label standards, and EDI protocols specify Code 128A explicitly. If a specification document or system integration guide calls for 'Code 128 Subset A' or 'Code 128A', use this format rather than Code 128 auto mode to ensure the scanner and host system receive exactly the expected encoding structure — including any required start character.
Code 128A specifications
Code 128 locked to code set A — uppercase letters, digits, and ASCII control characters. The table below lists the exact Code 128A specifications — character set, check digit, X-dimension, quiet zone and the governing ISO/IEC 15417 standard — so you can size and print the symbol correctly the first time.
| Character set | Digits 0-9, uppercase A-Z, ASCII control characters (NUL-US), and - . / : + % $ space (ASCII 0-63) |
|---|---|
| Data length | Variable; no fixed minimum or maximum |
| Check digit | Mandatory Mod 103 check character, appended automatically |
| Density | ≈12 characters per inch at the minimum 0.19 mm X-dimension |
| X-dimension (module width) | 0.19-0.50 mm typical |
| Quiet zone | 10X on each side |
| Magnification | Scales linearly with the chosen X-dimension |
| Bar / space ratio | Variable-width bars and spaces |
| Standard | ISO/IEC 15417 |
| Introduced | 1981 — Ted Williams, Computer Identics |
Typical uses: Legacy systems exchanging ASCII control characters; Industrial equipment interface labels; Fixed-format batch data with control separators.
How Code 128A compares to similar barcode types
Choosing the wrong symbology is the most common cause of barcodes that scan in the warehouse but get rejected downstream. This table compares Code 128A with the formats most often confused with it, on the three properties that decide compatibility: character set, check digit, and quiet zone.
| Symbology | Character set | Check digit | Quiet zone |
|---|---|---|---|
| Code 128A(this page) | Digits 0-9, uppercase A-Z, ASCII control characters (NUL-US), and - . / : + % $ space (ASCII 0-63) | Mandatory Mod 103 check character, appended automatically | 10X on each side |
| Code 128 | All 128 ASCII characters: 0-9, A-Z, a-z, punctuation, and control characters (code set dependent) | Mandatory Mod 103 check character, calculated automatically by the encoder | 10X on each side (minimum 2.5 mm recommended for general scanning) |
| Code 128B | Full printable ASCII 32-127: digits, upper and lowercase letters, punctuation, and space | Mandatory Mod 103 check character, appended automatically | 10X on each side |
| Code 128C | Digit pairs 00-99 only (numeric data) | Mandatory Mod 103 check character, appended automatically | 10X on each side |
How to Generate a Code 128A Barcode
Use Code 128A when your barcode data is uppercase-only or must include ASCII control characters. This workflow keeps the output compatible with Subset A scanners, shipping systems, and legacy host applications.
Choose Code 128A for Subset A data
Use Code 128A for uppercase letters, digits, punctuation, FNC1 workflows, and control-character-delimited data. If your value contains lowercase letters, choose Code 128B or Code 128 auto mode instead.
Enter uppercase or control-character data
Paste the exact value required by your shipping, logistics, laboratory, or host system. Keep the source value unchanged so the barcode decodes to the same control characters and field delimiters expected by your scanner software.
Preview and validate before printing
Check the live preview, quiet zone, bar height, and human-readable text. Scan the preview or a test print before producing labels in bulk, especially when control characters are part of the data.
Download PNG or SVG for labels
Download SVG for thermal label software and scalable print artwork, or PNG for documents and quick label templates. Use bulk generation when you need many uppercase item, carton, or shipment codes.
Best Use Cases for Code 128A
Code 128A is a specialized subset. These are the cases where it is usually a better match than Code 128B or Code 128C.
Shipping and warehouse labels
Encode uppercase shipment IDs, carton numbers, routing codes, and control-character separators for legacy warehouse systems that explicitly require Code 128 Subset A.
Control-character workflows
Use Code 128A when host software expects NUL, TAB, CR, GS, RS, US, FNC1, or other non-printable ASCII characters in the decoded barcode stream.
Industrial and manufacturing IDs
Create compact uppercase work-order, part, batch, and inspection labels where lowercase text is not allowed by the receiving scanner configuration.
When not to use Code 128A
Use Code 128B for lowercase or mixed-case text, Code 128C for long numeric strings, and Code 128 auto mode when you want the encoder to choose the most compact subset automatically.
Code 128A Barcode Generator Features
Produce compliant Code 128A barcodes with precise control over encoding, dimensions, and output format.
Strict Subset A Encoding
This generator locks encoding to Subset A only — no automatic subset switching. The output barcode uses the Code 128 Start A character and encodes every input character using Subset A tables. If your input contains characters outside the Subset A range (such as lowercase letters), the generator flags the invalid characters before producing a non-compliant barcode.
Control Character Input Support
Enter ASCII control characters using standard escape notation or copy-paste from your source system. The encoder correctly maps control codes to their Subset A symbol values and includes them in the barcode output. This allows you to produce GS1 FNC1-initiated Code 128A barcodes and control-code-delimited logistics labels that comply with specification requirements.
PNG and SVG Output
Download your Code 128A barcode as a high-resolution PNG or as a lossless SVG vector file. SVG output scales to any print size without pixelation — essential for shipping labels that must be scannable at multiple label sizes from 25mm address labels to full A4 logistics documents.
Adjustable Bar Height and Module Width
Set bar height and X-dimension (module width) to match the physical requirements of your label stock and scanner type. Longer bar heights improve scan angle tolerance on handheld scanners. Wider modules improve readability on low-resolution label printers. Quiet zones are generated at the required minimum automatically.
Bulk Generation from Uppercase Lists
Paste a list of uppercase-only values — item numbers, shipping codes, serial numbers — into the bulk panel and generate all Code 128A barcodes at once. Download as a ZIP of PNG or SVG files for use in label software, spreadsheet mail-merges, or direct printing workflows.
Code 128A — Frequently Asked Questions
Technical answers about Code 128A character support, use cases, and how it differs from Code 128 auto mode.
What characters does Code 128A support?
Code 128A encodes ASCII characters in the range 0x00–0x5F: all 10 digits (0–9), all 26 uppercase letters (A–Z), space (0x20), standard punctuation (! " # $ % & ' ( ) * + , - . / : ; < = > ? @), and the 32 ASCII control characters from NUL (0x00) through US (0x1F). Lowercase letters (a–z) and characters above 0x5F are not supported in Subset A.
When should I use Code 128A instead of Code 128 auto?
Use Code 128A when a receiving system or specification explicitly requires Subset A encoding, when your data contains ASCII control characters that must be encoded as standard Subset A symbols, or when integrating with a legacy barcode scanner or middleware that identifies the encoding subset from the barcode's start character. For general-purpose use with printable ASCII data only, Code 128 auto mode produces the same result for Subset A-compatible input with the flexibility to handle other inputs.
Can Code 128A encode lowercase letters?
No. Lowercase letters (a–z, ASCII 0x61–0x7A) are outside the Subset A character range. To encode lowercase letters in a Code 128 barcode, use Code 128B or Code 128 auto mode. Attempting to encode a lowercase letter in a strict Code 128A barcode results in an invalid symbol that most scanners will reject.
Does Code 128A have a check digit?
Yes. Like all Code 128 variants, Code 128A includes a mandatory Mod 103 check character that is calculated and appended automatically by the encoder. You do not need to compute or add it yourself.
When should I choose Code 128A instead of Code 128 auto mode?
Choose Code 128A when a specification, scanner profile, or host system explicitly requires Subset A, or when your data includes ASCII control characters that must be decoded exactly. For ordinary mixed text, Code 128 auto mode is usually easier and more compact.
Is Code 128A good for lowercase product names?
No. Code 128A does not encode lowercase letters directly. Use Code 128B for lowercase product names, descriptions, URLs, or mixed-case SKU text. Use Code 128C for numeric-only values with an even number of digits.
Which related barcode formats should I compare with Code 128A?
Compare Code 128A with Code 128B for printable ASCII text, Code 128C for dense numeric data, GS1-128 for application identifier labels, and Code 39 when a legacy scanner system requires a simpler uppercase symbology.
Specification reference
Read the full Code 128A specification — character set, check digit, quiet zone, density, and the governing ISO/IEC 15417 standard — in our barcode glossary.
Code 128A specificationRelated barcode types
Compare Code 128A with similar symbologies, or open their full specifications.
- Code 128
A high-density, variable-length linear barcode that encodes all 128 ASCII characters, and the backbone symbology of modern logistics.
- Code 128B
Code 128 locked to code set B — the full printable ASCII range including lowercase letters.
- Code 128C
Code 128 locked to code set C — digit pairs packed two per character for maximum numeric density.
Related barcode tools
Need more than one barcode, a printed label sheet, or a way to check the result? These tools use the same generator, so the output matches.
- Bulk Barcode GeneratorImport Excel or CSV, paste a list, or create a sequence and get a barcode for every row. Export as PNG, SVG, JPG, or a ZIP.
- Barcode Label PrintPrint a full sheet of labels that lines up with Avery label stock, at the correct physical size.
- Barcode ScannerVerify a printed label before you run the whole batch — decode it from an image or your camera.
- Barcode MakerFull control over size, colors, font, quiet zone, and layout for a single barcode.
Create Your Code 128A Barcode Now — Free, Instant, No Signup
Generate compliant Code 128A barcodes for shipping, logistics, and control-character-encoded labels right now. Enter your uppercase data, download as PNG or SVG, and print — completely free with no account required.
