Code 93 Specification
Code 93 is a bar code which encodes 43 data characters consisting of: 0-9,
A-Z, 6 symbols and a space; four control characters and a unique start/stop
character. The entire 128 ASCII character set is represented in Code 93 using
combinations of control characters and basic data characters. Code 93 derives
its name from the fact that every character is constructed from 9 modules or
elements arranged into 3 bars with their adjacent spaces. Each of the bars can
be 1, 2, or 3 modules wide. The start/stop character contains a 4 module wide
bar. Every Code 93 symbol includes two powerful check digits that minimize the
possibility of reader substitution errors due to printing defects.

Code 93 Character Set
ASCII Binary Bar Pattern Data
Character Word B S B S B S Value
0 100010100 1 3 1 1 1 2 0
1 101001000 1 1 1 2 1 3 1
2 101000100 1 1 1 3 1 2 2
3 101000010 1 1 1 4 1 1 3
4 100101000 1 2 1 1 1 3 4
5 100100100 1 2 1 2 1 2 5
6 100100010 1 2 1 3 1 1 6
7 101010000 1 1 1 1 1 4 7
8 100010010 1 3 1 2 1 1 8
9 100001010 1 4 1 1 1 1 9
A 110101000 2 1 1 1 1 3 10
B 110100100 2 1 1 2 1 2 11
C 110100010 2 1 1 3 1 1 12
D 110010100 2 2 1 1 1 2 13
E 110010010 2 2 1 2 1 1 14
F 110001010 2 3 1 1 1 1 15
G 101101000 1 1 2 1 1 3 16
H 101100100 1 1 2 2 1 2 17
I 101100010 1 1 2 3 1 1 18
J 100110100 1 2 2 1 1 2 19
K 100011010 1 3 2 1 1 1 20
L 101011000 1 1 1 1 2 3 21
M 101001100 1 1 1 2 2 2 22
N 101000110 1 1 1 3 2 1 23
O 100101100 1 2 1 1 2 2 24
P 100010110 1 3 1 1 2 1 25
Q 110110100 2 1 2 1 1 2 26
R 110110010 2 1 2 2 1 1 27
S 110101100 2 1 1 1 2 2 28
T 110100110 2 1 1 2 2 1 29
U 110010110 2 2 1 1 2 1 30
V 110011010 2 2 2 1 1 1 31
W 101101100 1 1 2 1 2 2 32
X 101100110 1 1 2 2 2 1 33
Y 100110110 1 2 2 1 2 1 34
Z 100111010 1 2 3 1 1 1 35
- 100101110 1 2 1 1 3 1 36
. 111010100 3 1 1 1 1 2 37
SPACE 111010010 3 1 1 2 1 1 38
$ 111001010 3 2 1 1 1 1 39
/ 101101110 1 1 2 1 3 1 40
+ 101110110 1 1 3 1 2 1 41
% 110101110 2 1 1 1 3 1 42
($) 100100110 1 2 1 2 2 1 43
(%) 111011010 3 1 2 1 1 1 44
(/) 111010110 3 1 1 1 2 1 45
(+) 100110010 1 2 2 2 1 1 46
Start/ Binary Bar Pattern
Stop Word B S B S B S B
Start 101011110 1 1 1 1 4 1 -
Stop 1010111101 1 1 1 1 4 1 1
Full ASCII Character Set
ASCII Code 93 ASCII Code 93 ASCII Code 93 ASCII Code 93
NL (%)U Space Space @ (%)V ` (%)W
SH ($)A ! (/)A A A a (+)A
SX ($)B " (/)B B B b (+)B
EX ($)C # (/)C C C c (+)C
ET ($)D $ (/)D or $ D D d (+)D
EQ ($)E % (/)E or % E E e (+)E
AK ($)F & (/)F F F f (+)F
BL ($)G ' (/)G G G g (+)G
BS ($)H ( (/)H H H h (+)H
HT ($)I ) (/)I I I i (+)I
LF ($)J * (/)J J J j (+)J
VT ($)K + (/)K or + K K k (+)K
FF ($)L , (/)L L L l (+)L
CR ($)M - (/)M or - M M m (+)M
SO ($)N . (/)N or . N N n (+)N
SI ($)O / (/)O or / O O o (+)O
DL ($)P 0 (/)P or 0 P P p (+)P
D1 ($)Q 1 (/)Q or 1 Q Q q (+)Q
D2 ($)R 2 (/)R or 2 R R r (+)R
D3 ($)S 3 (/)S or 3 S S s (+)S
D4 ($)T 4 (/)T or 4 T T t (+)T
NK ($)U 5 (/)U or 5 U U u (+)U
SY ($)V 6 (/)V or 6 V V v (+)V
EB ($)W 7 (/)W or 7 W W w (+)W
CN ($)X 8 (/)X or 8 X X x (+)X
EM ($)Y 9 (/)Y or 9 Y Y y (+)Y
SB ($)Z : (/)Z Z Z z (+)Z
EC (%)A ; (%)F [ (%)K { (%)P
FS (%)B < (%)G \ (%)L (%)Q
GS (%)C = (%)H ] (%)M } (%)R
RS (%)D > (%)I ^ (%)N ~ (%)S
US (%)E ? (%)J _ (%)O DEL (%)T
NOTE
The character pairs (%)X, (%)Y, (%)Z will decode as ASCII DEL.
Check Characters
Code 93 uses two check characters, C and K, which precede the stop character.
The first check character ``C'' is the modulo 47 sum of the data character
values (See Code 93 Character Set ), and weighting values which increase from
right to left, with the last data character first, in the repeating sequence 1,
2, 3, ... 20, 1, ..
The second check character ``K'' is also the modulo 47 sum of the data
character values (See Code 93 Character Set), and weighting values which
increase from right to left, with the ``C'' check character first, in the
repeating sequence 1, 2, 3, ... 15, 1, ..
Step 1: From the above table, find the values of each character.
C O D E 9 3 <--Message characters
12 24 13 14 38 9 3 <--Character values
Step 2: Starting with the right-most character, number each character
(using a modulo 20 sequence)
C O D E 9 3
7 6 5 4 3 2 1 <--position numbers
Step 3: Sum the products of the char values and their position numbers
(12 * 7) + (24 * 6) + (13 * 5) + (14 * 4)
+ (38 * 3) + (9 * 2) + (3 * 1) = 484
Step 4: Divide the result by 47. Look up the remainder in the table.
484 / 47 = 10 with remainder 14 (E from table)
The C check character is E.
Step 5: Add the C check character to right of message characters
and renumber each character.
C O D E 9 3 E <--Message chars with C check char
8 7 6 5 4 3 2 1 <--position numbers
Step 6: Sum the products of the char values and their position numbers
(12 * 8) + (24 * 7) + (13 * 6) + (14 * 5)
+ (38 * 4) + (9 * 3) + (3 * 2) + (14 * 1) = 611
Step 7: Divide the result by 47. Look up the remainder in the table.
611 / 47 = 13 with remainder 0 (0 from table)
The K check character is 0.
|