Plain English

The most versatile 1D barcode — encodes any ASCII character (letters, numbers, symbols) using three subsets (A: control + uppercase, B: full ASCII, C: numeric-pair compression). Zebra firmware **auto-switches** subsets based on data content, so even-length numeric data automatically uses subset C and produces a noticeably narrower barcode than the same byte count of mixed text.

When to use

Default choice for most barcodes — shipping labels, inventory, asset tags. If in doubt, use Code 128. Knowing about subset switching helps debug "why is the barcode narrower than I expected" — the answer is usually subset-C compression on numeric runs.

Syntax

^BCo,h,f,g,e,m

Parameters

ParameterDescription
oRotation: N, R, I, B
hBar height in dots
fShow human-readable text: Y or N
gText above barcode: Y or N (default N = below)
eUCC check digit: Y or N
mMode: N (no selected mode, default), U (UCC Case Mode), A (auto subset switch — recommended), D (UCC/EAN with automatic application identifiers)

Example

^XA
^FO50,50^BY2^BCN,80,Y,N,N,A^FD1234567890^FS
^XZ

Mode `A` enables auto-switching — the 10-digit even-length payload encodes via subset C (5 numeric pairs), producing a shorter barcode than the same 10 bytes of letters.

Try it in the playground View all ZPL commands