編碼規則與邏輯
- 黑線與空格的寬度分別為粗、細兩種
- 每五條黑線與其間的 4 個空格,代表一個字元或指令
- 最前面 5 條與最後面 5 條皆相同,分別代表「開始」與「結束」之指令
- 指令或字元之間的空格均為細空格
- 每 5 條黑線與其間的 4 個空格,代表一個字元或指令,且 5 條黑線中固定 2 條為粗、4 個空格中固定 1 格為粗,即為 Code 39 之命名由來
- 字元(數字)條碼的黑線部分隱含二進位之規律,但能須遵守黑線中固定 2 條為粗


*原為 「$111$」, 但因破壞了規則(只能有兩條粗線),所以取前面兩數「$011$」在第二個進位替代 $7$ 的數值,並將 $7$ 以後的二進位用新的 「$0001$」做加法。
Code 39
字元 | 條碼 | 黑線 | 空格 |
---|---|---|---|
1 | ![]() | 10001 | 0100 |
2 | ![]() | 01001 | 0100 |
3 | ![]() | 11000 | 0100 |
4 | ![]() | 00101 | 0100 |
5 | ![]() | 10100 | 0100 |
6 | ![]() | 01100 | 0100 |
7 | ![]() | 00011 | 0100 |
8 | ![]() | 10010 | 0100 |
9 | ![]() | 01010 | 0100 |
0 | ![]() | 00110 | 0100 |
範例
使用 20040628 這組數字製作一個條碼
心得
此篇為我高中的課程「探究與實作」的其中一部份,在 2025/07/08 時整理起來成為此網站的一部份。
當時 範例 中的條碼為使用手繪的形式呈現,困難之處在於黑色條碼(黑線)與白色條碼(空格)幾乎是要同時呈現出來,只要一格錯誤,整個條碼就失敗了;還有要注意的一部份為粗條碼要是細條碼的兩倍,且從頭到尾、黑色與白色都要一直保持一樣的粗細度。