Intermec introduced Code 93 in 1982 as a denser, more secure version of Code 39. It encodes the same 43 characters and adds four shift characters, but packs each character into 9 modules made of 3 bars and 3 spaces, each 1 to 4 modules wide. That is where the name comes from.
Every symbol has six parts:
- Quiet zone: a blank margin at least 10 modules wide on both sides of the symbol.
- Start character: shown as an asterisk (*). It is never part of the data.
- Data characters: any number of characters from the 47-character set.
- Check characters C and K: two mod 47 characters that every Code 93 symbol must carry.
- Stop character: the same pattern as the start character.
- Termination bar: a single bar after the stop character that closes the symbol.
The two check characters let the reader catch a misread before it reaches your app. In Code 39 the check character is optional; in Code 93 both are always there. barKoder verifies C and K, rejects a symbol without them, and returns the data without the check characters. Full ASCII data is decoded automatically.