Code 93 Generator
Generate Code 93 barcodes online with checksum validation. Create high-resolution barcodes for logistics, inventory, and ID systems.
Enter data and click Generate
About
Code 93 is a variable-length, continuous linear barcode symbology developed by Intermec in 1982 as a higher-density alternative to Code 39. Each character encodes into 9 modules (bars and spaces), compared to Code 39's 15 modules per character. This yields roughly 40% shorter barcodes for identical data. The symbology mandates two modulo-47 check characters (C and K), making misread probability significantly lower than Code 39. Incorrect barcode generation in supply chain or military logistics (MIL-STD-1189B) causes scan failures, shipment misroutes, and compliance violations that cost measurable time and money.
This tool computes both check digits algorithmically, renders the barcode to a pixel-accurate canvas, and exports at configurable resolution. The native character set covers 47 symbols: digits 0 - 9, uppercase A - Z, and seven special characters. Full ASCII encoding is supported via four shift characters (($), (%), (/), (+)), enabling all 128 ASCII values. The tool approximates standard print density. Actual scanner compatibility depends on print DPI, quiet zone width, and substrate contrast ratio.
Formulas
Code 93 uses two modulo-47 check characters appended after the data payload. The first is check C, computed over the original data values. The second is check K, computed over the data values plus the already-computed C value.
Where the weight wi cycles from 1 to 20 starting from the rightmost character. vi is the numeric value of the i-th character from the right.
For check K, the weight wi cycles from 1 to 15. The data set now includes the C check value as the rightmost element. The final barcode structure is: Start (*) + Data + C + K + Stop (*) + Termination bar (1 module).
Where vi = character value (0 - 46), n = number of data characters, wi = positional weight cycling right to left.
Reference Data
| Character | Value | Pattern (Binary) | Weights |
|---|---|---|---|
| 0 | 0 | 100010100 | b=3,s=1,b=1,s=1,b=1,s=2 |
| 1 | 1 | 101001000 | b=1,s=1,b=1,s=2,b=1,s=3 |
| 2 | 2 | 101000100 | b=1,s=1,b=1,s=3,b=1,s=2 |
| 3 | 3 | 101000010 | b=1,s=1,b=1,s=4,b=1,s=1 |
| 4 | 4 | 100101000 | b=1,s=2,b=1,s=1,b=1,s=3 |
| 5 | 5 | 100100100 | b=1,s=2,b=1,s=2,b=1,s=2 |
| 6 | 6 | 100100010 | b=1,s=2,b=1,s=3,b=1,s=1 |
| 7 | 7 | 101010000 | b=1,s=1,b=1,s=1,b=1,s=4 |
| 8 | 8 | 100010010 | b=3,s=1,b=1,s=2,b=1,s=1 |
| 9 | 9 | 100001010 | b=3,s=2,b=1,s=1,b=1,s=1 |
| A | 10 | 110101000 | b=1,s=1,b=1,s=1,b=2,s=3 |
| B | 11 | 110100100 | b=1,s=1,b=1,s=2,b=2,s=2 |
| C | 12 | 110100010 | b=1,s=1,b=1,s=3,b=2,s=1 |
| D | 13 | 110010100 | b=1,s=1,b=2,s=1,b=1,s=3 |
| E | 14 | 110010010 | b=1,s=1,b=2,s=2,b=1,s=2 |
| F | 15 | 110001010 | b=1,s=1,b=2,s=3,b=1,s=1 |
| G | 16 | 101101000 | b=1,s=1,b=1,s=1,b=1,s=3 |
| H | 17 | 101100100 | b=2,s=1,b=1,s=2,b=1,s=2 |
| I | 18 | 101100010 | b=2,s=1,b=1,s=3,b=1,s=1 |
| J | 19 | 100110100 | b=2,s=2,b=1,s=1,b=1,s=2 |
| K | 20 | 100011010 | b=3,s=1,b=1,s=1,b=1,s=2 |
| L | 21 | 101011000 | b=1,s=1,b=2,s=1,b=2,s=2 |
| M | 22 | 101001100 | b=1,s=1,b=2,s=2,b=2,s=1 |
| N | 23 | 101000110 | b=1,s=1,b=2,s=3,b=2,s=1 |
| O | 24 | 100101100 | b=1,s=2,b=2,s=1,b=1,s=2 |
| P | 25 | 100010110 | b=3,s=1,b=2,s=1,b=1,s=1 |
| Q | 26 | 110110100 | b=1,s=1,b=1,s=1,b=2,s=2 |
| R | 27 | 110110010 | b=2,s=1,b=1,s=1,b=2,s=1 |
| S | 28 | 110101100 | b=1,s=1,b=2,s=1,b=2,s=1 |
| T | 29 | 110100110 | b=2,s=1,b=2,s=2,b=1,s=1 |
| U | 30 | 110010110 | b=2,s=2,b=2,s=1,b=1,s=1 |
| V | 31 | 110011010 | b=2,s=2,b=1,s=1,b=2,s=1 |
| W | 32 | 101101100 | b=1,s=1,b=1,s=2,b=2,s=1 |
| X | 33 | 101100110 | b=2,s=1,b=2,s=1,b=1,s=2 |
| Y | 34 | 100110110 | b=2,s=2,b=1,s=2,b=1,s=1 |
| Z | 35 | 100111010 | b=2,s=2,b=1,s=1,b=1,s=1 |
| − | 36 | 100101110 | b=1,s=2,b=1,s=1,b=2,s=1 |
| . | 37 | 111010100 | b=1,s=1,b=1,s=1,b=1,s=2 |
| SPACE | 38 | 111010010 | b=1,s=1,b=1,s=2,b=1,s=1 |
| $ | 39 | 111001010 | b=1,s=1,b=2,s=1,b=1,s=1 |
| / | 40 | 101101110 | b=1,s=1,b=1,s=1,b=2,s=1 |
| + | 41 | 101110110 | b=2,s=1,b=1,s=1,b=1,s=1 |
| % | 42 | 110101110 | b=1,s=1,b=1,s=1,b=1,s=1 |
| ($) | 43 | 100100110 | Shift a |
| (%) | 44 | 111011010 | Shift b |
| (/) | 45 | 111010110 | Shift c |
| (+) | 46 | 100110010 | Shift d |