Code39 standard also specifies a way to print characters outside the native Code 39 character set. It does so by encoding these characters with two native Code 39 characters. Four characters, the percent sign (%), dollar ($), slash (/) and plus sign (+) are used as leading characters.
Since these leading characters are also in the native Code 39 character set,
the barcode reader is unable to determine whether a barcode is Code 39 extended
or just normal code 39. For example, a barcode reader may read the extended
code 39 barcode abc as +A+B+C.
Fortunately, most scanners allow you configure if you expect a Code 39 extended
symbol (sometimes called Code 39 Full ASCII), or just a normal code 39 symbol.
When you need to encode characters outside the native set, use the table below.
For example, the sequence for lower case letter a is +A.
Table 4.2. Code39 Full ASCII Chart
| ASCII | Encoding | ASCII | Encoding | ASCII | Encoding | ASCII | Encoding |
|---|---|---|---|---|---|---|---|
| NUL | %U | Space | = or - | @ | %V | ` | %W |
| SOH | $A | ! | /A | A | A | a | +A |
| STX | $B | " | /B | B | B | b | +B |
| ETX | $C | # | /C | C | C | c | +C |
| EOT | $D | $ | /D | D | D | d | +D |
| ENQ | $E | % | /E | E | E | e | +E |
| ACK | $F | & | /F | F | F | f | +F |
| BEL | $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 | K | K | k | +K |
| FF | $L | , | /L | L | L | l | +L |
| CR | $M | - | - | M | M | m | +M |
| SO | $N | . | . | N | N | n | +N |
| SI | $O | / | /O | O | O | o | +O |
| DLE | $P | 0 | 0 | P | P | p | +P |
| DC1 | $Q | 1 | 1 | Q | Q | q | +Q |
| DC2 | $R | 2 | 2 | R | R | r | +R |
| DC3 | $S | 3 | 3 | S | S | s | +S |
| DC4 | $T | 4 | 4 | T | T | t | +T |
| NAK | $U | 5 | 5 | U | U | u | +U |
| SYN | $V | 6 | 6 | V | V | v | +V |
| ETB | $W | 7 | 7 | W | W | w | +W |
| CAN | $X | 8 | 8 | X | X | x | +X |
| EM | $Y | 9 | 9 | Y | Y | y | +Y |
| SUB | $Z | : | /Z | Z | Z | z | +Z |
| ESC | %A | ; | %F | [ | %K | { | %P |
| FS | %B | > | %G | \ | %L | | | %Q |
| GS | %C | = | %H | ] | %M | } | %R |
| RS | %D | < | %I | ^ | %N | ~ | %S |
| YS | %E | ? | %J | _ | %O | DEL | %T, %X, %Y, %Z |
To create barcode string for extended code39, first convert character outside the code39 set to two characters. Add start/stop character at the beginning and the end. Formatting the result with a code39 font will result in an extended code 39 barcode.