What you're using right now
- 100+ barcode & QR symbologies
- Live preview & customization
- PNG & SVG export, no login
- Copy to clipboard
Loading Barcode Mint…
Free Online Barcode & QR Code Generator
Code 128 subset B is the workhorse variant for mixed-case text, encoding upper and lowercase letters, digits, and symbols in one compact barcode.
Open the generator ↓Turn a CSV — or a numbered sequence — into hundreds of barcodes at once, exported as a ZIP of images or a print-ready PDF sheet. Launching with Pro.
The browser generator stays free forever. Paid plans are for teams who need bulk output and developers who need the REST API at scale — commercial license included. Tell us what you'd use; early-list members get first access and launch pricing.
What you're using right now
For designers & teams
Priced by requests. Commercial license and self-serve keys included; usage dashboard at launch.
Code 128 B is the character-set-B variant of Code 128, supporting the full printable ASCII range: uppercase letters, lowercase letters, digits 0–9, and standard punctuation and symbols. It does not include the non-printable control characters that subset A supports. In practice, subset B is the most commonly used of the three Code 128 subsets because most real-world data — product names, mixed-case model numbers, email-derived codes, alphanumeric order IDs — needs both letter cases in the same string.
When you use plain, auto-mode Code 128 and type any lowercase letter, the encoder will typically drop into subset B automatically to represent it. Choosing Code 128 B explicitly in Barcode Mint forces that subset for the entire symbol, which is useful when a downstream system or scanner configuration expects consistent subset B output rather than a barcode that could switch subsets mid-stream.
All three Code 128 subsets share identical bar geometry, start/stop codes, and a modulo-103 check digit — they differ only in which characters map to which internal code values:
Because subset B covers essentially all printable characters people actually type, it's the default assumption for anything that isn't strictly numeric or strictly control-character-driven. If your data is a long pure-digit string, subset C will produce a noticeably shorter barcode for the same information — but the moment even one letter appears, subset B (or auto Code 128) becomes necessary.
Subset B is the default for most modern Code 128 applications involving readable, mixed-case data:
Code 128 B is governed by the same ISO/IEC 15417 standard as the other Code 128 subsets. It encodes all 95 printable ASCII characters — uppercase and lowercase letters, digits, punctuation, and symbols — but excludes non-printable control characters. Each character uses 11 modules split across 3 bars and 3 spaces, plus a distinct stop pattern at the end of the symbol. There's no fixed maximum data length in the standard itself, though physical label width and scanner depth-of-field impose practical limits. A single check digit is mandatory, computed as a modulo-103 weighted checksum over the start character and every encoded symbol value; Barcode Mint calculates and appends it automatically, so no manual math is required.
Select Code 128 B from Barcode Mint's symbology list to force subset B encoding. Type your mixed-case text or alphanumeric string into the data field — the live preview renders instantly so you can confirm the bar pattern before exporting. From there:
For sequential IDs — like incrementing order numbers with a letter prefix — use the batch/sequence feature. For larger label runs, the bulk CSV → ZIP/PDF tool converts a spreadsheet column into a complete set of barcode files or a single printable PDF. Developers can generate Code 128 B barcodes programmatically via the REST API using /barcode?type=code128b&data=YOURDATA.
Subset B's mixed-case flexibility comes with a few practical considerations at print time:
Against Code 128 A, subset B adds lowercase letters but drops support for control characters — the right trade for almost all consumer-facing and general business data. Against Code 128 C, subset B is roughly twice as wide for purely numeric strings, since C encodes two digits per character; if your data turns out to be all-digit, switching to C shortens the barcode meaningfully. Against Code 39, subset B is denser and includes lowercase letters that Code 39 can't represent without its Full ASCII extension, though Code 39 remains more universally supported on very old scanner hardware. For most modern mixed-case applications, subset B (or auto Code 128) is the default recommendation over any of these alternatives.
Not exactly. Plain Code 128 auto-selects between subsets A, B, and C for maximum efficiency, while Code 128 B forces subset B for the entire barcode. For typical mixed-case text, the two often produce identical results.
Yes. Barcode Mint's bulk CSV → ZIP/PDF tool accepts a spreadsheet of values and outputs a complete set of Code 128 B barcodes as individual files or a print-ready PDF.