Code 93
Code 93 is a barcode symbology designed in 1982 by Intermec to provide a higher density and data security enhancement to Code 39. It is an alphanumeric, variable length symbology. Code 93 is used primarily by Canada Post to encode supplementary delivery information. Every symbol includes two check characters.
Each Code 93 character is nine modules wide, and always has three bars and three spaces, thus the name. Each bar and space is from 1 to 4 modules wide. (For comparison, a Code 39 character consists of five bars and four spaces, three of which are wide, for a total width of 13–16 modules.)
Code 93 is designed to encode the same 26 upper case letters, 10 digits and 7 special characters as code 39:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
0 1 2 3 4 5 6 7 8 9
- . $ / + % SPACE
In addition to 43 characters, Code 93 defines 5 special characters (including a start/stop character), which can be combined with other characters to unambiguously represent all 128 ASCII characters.
In an open system, the minimum value of X dimension is 7.5 mils (0.19 mm). The minimum bar height is 15 percent of the symbol length or 0.25 inches (6.4 mm), whichever is greater. The starting and trailing quiet zone should be at least 0.25 inches (6.4 mm).
Structure of a code 93 barcode
[edit]A typical code 93 barcode has the following structure:
- A start character *
- Encoded message
- First modulo-47 check character "C"
- Second modulo-47 check character "K"
- Stop character *
- Termination bar
Detailed outline
[edit]The 48 possible code-93 symbols are as follows. There are actually = 56 combinations that satisfy the coding rules, but one would be confused with the stop symbol in reverse, and the other 7 are unused. Codes 43–46 can be prefixed to alphanumeric values to produce all 128 possible ASCII codes. This is done in exactly the same way as Full ASCII Code 39, but uses reserved codes rather than re-using codes 39–42.
ID | Character | Widths | Binary | ID | Character | Widths | Binary |
---|---|---|---|---|---|---|---|
0 | 0 | 131112 | 100010100 | 28 | S | 211122 | 110101100 |
1 | 1 | 111213 | 101001000 | 29 | T | 211221 | 110100110 |
2 | 2 | 111312 | 101000100 | 30 | U | 221121 | 110010110 |
3 | 3 | 111411 | 101000010 | 31 | V | 222111 | 110011010 |
4 | 4 | 121113 | 100101000 | 32 | W | 112122 | 101101100 |
5 | 5 | 121212 | 100100100 | 33 | X | 112221 | 101100110 |
6 | 6 | 121311 | 100100010 | 34 | Y | 122121 | 100110110 |
7 | 7 | 111114 | 101010000 | 35 | Z | 123111 | 100111010 |
8 | 8 | 131211 | 100010010 | 36 | - | 121131 | 100101110 |
9 | 9 | 141111 | 100001010 | 37 | . | 311112 | 111010100 |
10 | A | 211113 | 110101000 | 38 | SPACE | 311211 | 111010010 |
11 | B | 211212 | 110100100 | 39 | $ | 321111 | 111001010 |
12 | C | 211311 | 110100010 | 40 | / | 112131 | 101101110 |
13 | D | 221112 | 110010100 | 41 | + | 113121 | 101110110 |
14 | E | 221211 | 110010010 | 42 | % | 211131 | 110101110 |
15 | F | 231111 | 110001010 | 43 | ($) | 121221 | 100100110 |
16 | G | 112113 | 101101000 | 44 | (%) | 312111 | 111011010 |
17 | H | 112212 | 101100100 | 45 | (/) | 311121 | 111010110 |
18 | I | 112311 | 101100010 | 46 | (+) | 122211 | 100110010 |
19 | J | 122112 | 100110100 | Start/Stop * | 111141 | 101011110 | |
20 | K | 132111 | 100011010 | (Reverse stop) | 114111 | 101111010 | |
21 | L | 111123 | 101011000 | Unused | 411111 | 111101010 | |
22 | M | 111222 | 101001100 | 111132 | 101011100 | ||
23 | N | 111321 | 101000110 | 111231 | 101001110 | ||
24 | O | 121122 | 100101100 | 113112 | 101110100 | ||
25 | P | 131121 | 100010110 | 113211 | 101110010 | ||
26 | Q | 212112 | 110110100 | 213111 | 110111010 | ||
27 | R | 212211 | 110110010 | 212121 | 110110110 |
Full ASCII Code 93
[edit]Code 93 is restricted to 43 characters and 5 special characters. In Full ASCII Code 93, the 43 basic symbols (0–9, A-Z, "-", ".", "$", "/", "+" and "%") are the same as their representations in Code 93. Lower case letters, additional punctuation characters and control characters are represented by sequences of two characters of Code 93.
This encoding is the same as Full ASCII Code 39, except that four special-purpose symbols are used, rather than reassigning $, /, + and %:
Code details | ||||||||||||||
Nr | Character | Encoding | Nr | Character | Encoding | Nr | Character | Encoding | Nr | Character | Encoding | |||
0 | NUL | (%)U | 32 | [space] | [space] | 64 | @ | (%)V | 96 | ` | (%)W | |||
1 | SOH | ($)A | 33 | ! | (/)A | 65 | A | A | 97 | a | (+)A | |||
2 | STX | ($)B | 34 | " | (/)B | 66 | B | B | 98 | b | (+)B | |||
3 | ETX | ($)C | 35 | # | (/)C | 67 | C | C | 99 | c | (+)C | |||
4 | EOT | ($)D | 36 | $ | $ | 68 | D | D | 100 | d | (+)D | |||
5 | ENQ | ($)E | 37 | % | % | 69 | E | E | 101 | e | (+)E | |||
6 | ACK | ($)F | 38 | & | (/)F | 70 | F | F | 102 | f | (+)F | |||
7 | BEL | ($)G | 39 | ' | (/)G | 71 | G | G | 103 | g | (+)G | |||
8 | BS | ($)H | 40 | ( | (/)H | 72 | H | H | 104 | h | (+)H | |||
9 | HT | ($)I | 41 | ) | (/)I | 73 | I | I | 105 | i | (+)I | |||
10 | LF | ($)J | 42 | * | (/)J | 74 | J | J | 106 | j | (+)J | |||
11 | VT | ($)K | 43 | + | + | 75 | K | K | 107 | k | (+)K | |||
12 | FF | ($)L | 44 | , | (/)L | 76 | L | L | 108 | l | (+)L | |||
13 | CR | ($)M | 45 | - | - | 77 | M | M | 109 | m | (+)M | |||
14 | SO | ($)N | 46 | . | . | 78 | N | N | 110 | n | (+)N | |||
15 | SI | ($)O | 47 | / | / | 79 | O | O | 111 | o | (+)O | |||
16 | DLE | ($)P | 48 | 0 | 0 | 80 | P | P | 112 | p | (+)P | |||
17 | DC1 | ($)Q | 49 | 1 | 1 | 81 | Q | Q | 113 | q | (+)Q | |||
18 | DC2 | ($)R | 50 | 2 | 2 | 82 | R | R | 114 | r | (+)R | |||
19 | DC3 | ($)S | 51 | 3 | 3 | 83 | S | S | 115 | s | (+)S | |||
20 | DC4 | ($)T | 52 | 4 | 4 | 84 | T | T | 116 | t | (+)T | |||
21 | NAK | ($)U | 53 | 5 | 5 | 85 | U | U | 117 | u | (+)U | |||
22 | SYN | ($)V | 54 | 6 | 6 | 86 | V | V | 118 | v | (+)V | |||
23 | ETB | ($)W | 55 | 7 | 7 | 87 | W | W | 119 | w | (+)W | |||
24 | CAN | ($)X | 56 | 8 | 8 | 88 | X | X | 120 | x | (+)X | |||
25 | EM | ($)Y | 57 | 9 | 9 | 89 | Y | Y | 121 | y | (+)Y | |||
26 | SUB | ($)Z | 58 | : | (/)Z | 90 | Z | Z | 122 | z | (+)Z | |||
27 | ESC | (%)A | 59 | ; | (%)F | 91 | [ | (%)K | 123 | { | (%)P | |||
28 | FS | (%)B | 60 | < | (%)G | 92 | \ | (%)L | 124 | | | (%)Q | |||
29 | GS | (%)C | 61 | = | (%)H | 93 | ] | (%)M | 125 | } | (%)R | |||
30 | RS | (%)D | 62 | > | (%)I | 94 | ^ | (%)N | 126 | ~ | (%)S | |||
31 | US | (%)E | 63 | ? | (%)J | 95 | _ | (%)O | 127 | DEL | (%)T, (%)X, (%)Y, (%)Z |
References
[edit]- http://www.barcodeisland.com/code93.phtml Archived 2009-02-25 at the Wayback Machine Bar code Island's description of the code.
External links
[edit]- Morovia Library Code 93 Specification This includes the checksum computation algorithm. Note that "C" is included in the computation of "K".
- Code 93 Technical Specification