What Code 93 Extended is
Code 93 Extended ("Full ASCII Code 93") layers a 1-2 character shift-code scheme on top of plain Code 93's own 47-character alphabet so it can represent all 128 ASCII values -- lowercase letters, punctuation, and control characters that base Code 93 cannot encode directly. bwip-js maps every input byte through its own 128-entry shift-code table, then delegates the actual bar-pattern drawing to its Code 93 encoder -- confirmed directly: bwipp_code93ext builds the shift-encoded string itself and calls bwipp_code93(), the same structural shape already established for Code 39 Extended in Batch 9.
Generate it now
Enter any ASCII text (letters of either case, digits, punctuation) to see a live preview.
Valid input
Up to 500 characters is accepted, and every character must be plain ASCII (byte value 0-127) -- bwipp.code93extbadCharacter rejects anything outside that range ("Code 93 Extended only support ASCII characters with values 0 to 127"). Because each ASCII byte can expand to 1 or 2 Code 93 characters once shift-encoded, the effective symbol length can be up to twice the input length.
Key options
Supported options include includetext (this bcid's own real option) plus includecheck (Code 93's own real option, genuinely reaching the underlying delegate because code93ext forwards the caller's options unchanged). Real, literal defaults: includetext false, includecheck false (no check characters are computed or drawn unless requested).
Output and printing
Export SVG for vector-precise label artwork or PNG for a quick proof.
Common uses
Code 93 Extended is used where an existing Code 93 reader/label workflow needs to encode data outside base Code 93's own 47-character alphabet -- serial numbers or asset tags with mixed-case letters or punctuation, for example -- without switching to a different symbology entirely.
Example
See the live preview above, seeded with a bwip-js-verified valid value.
Size guidance
The rendered width grows with the shift-encoded length, not the raw input length -- characters outside base Code 93's own alphabet (lowercase letters, most punctuation) each cost 2 encoded characters instead of 1.
Troubleshooting
A rejected value usually means it contains a byte outside plain ASCII (128 and above) -- Code 93 Extended cannot represent extended/non-ASCII byte values at all.
Related formats
Related formats: the separately-covered Code 93 generator (the base 47-character alphabet only, no shift codes) and Code 39 Extended (the identical shift-code idea applied to Code 39 instead).
FAQ
How is this different from the regular Code 93 generator?
Both use the identical underlying Code 93 encoder for the actual bar patterns; this generator additionally shift-encodes any character outside Code 93's own 47-character alphabet (lowercase letters, most punctuation) into a 1-2 character Code 93 sequence first, so it can represent the full ASCII range.
Why is my rendered symbol wider than the number of characters I typed?
Many characters outside base Code 93's own alphabet expand to 2 encoded characters instead of 1 once shift-encoded -- mixed-case or punctuation-heavy input renders wider than the same-length all-uppercase, all-digit input would.