Decode one
Scan or paste a barcode and see every part of it.
Make one
Generate a valid barcode from fields.
Where you’ll see it
- Industrial and logistics labels that started on Code 39 and needed more data in the same space.
- Less often than you’d expect. Code 128 is denser still and became the usual choice, so Code 93 is mostly found in systems that already used it.
Anatomy
Characters
Each character is 9 modules wide: three bars and three spaces, each 1 to 4 modules wide. Characters sit edge to edge with no gaps, which is a large part of why Code 93 is shorter than Code 39. The start and stop characters are the same pattern. A single-module bar after the stop character ends the symbol.Full ASCII
Besides the 43 characters it shares with Code 39, Code 93 has four shift characters. Each combines with the character after it to make one of the other ASCII characters, such as lowercase letters. Unlike Code 39’s Full ASCII, the shift characters can’t be mistaken for data, so a scanner can always tell when they’re used.Check characters
Every Code 93 barcode ends with two check characters, called C and K. Both use mod-47:- C weights the data characters 1, 2, 3 and so on from the right, starting again at 1 after 20.
- K does the same over the data and C, starting again after 15.
ZIPZAP, C is X and K is Q. Scanners verify both and then drop them, so they’re never printed or sent.
Variants and related types
- Code 39: the barcode Code 93 was designed to replace. Same characters, wider, and with only an optional check.
- Code 128: denser still, with lowercase letters and digit compression.
Gotchas
- Lowercase letters arrive as shift pairs. If your scanner doesn’t handle Full ASCII, you’ll see the shift character and an uppercase letter instead.
- Code 93 and Code 39 aren’t interchangeable. A scanner set to read only one won’t read the other, even though the printed text looks alike.
Scanning it in your app
Specification
- AIM USS Code 93: the Code 93 barcode specification.