Code 39


Code 39 is variable length and is the most frequently used symbology in industrial bar code systems today. The principal feature is to encode messages using the full alphanumeric character set. Three of the nine elements (bars) are wide and six elements are narrow. The Code 39 bar code uses four special characters "$", "/", "+". "%" which can be paired with alphanumeric characters to extend to the full ASCII character set. Listed below are the options for the Code 39 symbology.


Standard Code 39 contains only 43 characters (0-9, A-Z, $, /, %, +). Code 39 can be extended to an 128 character symbology (full ASCII) by combining one of the special characters ($, /, %, +) with a letter (A-Z) to form the characters that are not present in the standard Code 39 symbology. For example, in standard Code 39 a lowercase "a" cannot be represented. In Code 39 Full ASCII, however, "a" is represented as "+A".

Check Digit

A modulo 43 check character can be used to enhance data security for Code 39 symbols. The last digit of the symbol is assumed to be the check digit, and it is compared to a calculated check digit to verify the symbol.


It is sometimes advantageous to break up long messages into multiple, shorter symbols. If the first character of a Code 39 symbol is a space (ASCII 32), then the scanned symbol is appended to a storage buffer. This operation continues for all successive Code 39 symbols with a leading space being added to previously stored ones. When a Code 39 symbol is scanned which does not include a leading space, it is appended to the buffer, the entire buffer is transmitted, and the buffer is cleared.