只要你的工作會接觸到條碼——無論是物流、醫療、製造或零售——大概都用過 Code 128 和 Code 39 這兩種格式。它們是當前最常見的兩種一維條碼,到了 2026 年,兩者之間的選擇關鍵仍然是:你需要編碼多少資料,以及標籤上還有多少空間。
Code 128 是現代標準:高密度、完整支援 ASCII,並強制使用檢查碼。Code 39 則是較舊、較簡單的替代方案,短字串時還算堪用,但資料一長就會變得笨重。本文將逐步拆解兩者差異,幫你選出最適合的條碼格式。
Code 128 vs Code 39 快速總覽
| 功能 | Code 128 | Code 39 |
|---|---|---|
| 資料密度 | 高 — 在更小空間內塞入更多資料 | 低 — 資料一多就變得很寬 |
| 字元集 | 完整 128 ASCII 字元 | 43 個字元(大寫字母、數字、少數符號) |
| 小寫字母支援 | 原生支援 | 僅能透過「Extended」模式(條碼長度加倍) |
| 檢查碼 | 強制 (Modulo 103) | 選用 |
| 條/空白寬度 | 4 種寬度 (1、2、3、4 單位) | 2 種寬度(窄與寬) |
| 最適用於 | 物流、出貨、複雜資料 | 簡單內部追蹤、舊有系統 |
實體佔地的差距相當驚人。根據 Peak Technologies 的建議,當你的資料字串超過 15 個字元時,就應該從 Code 39 改用 Code 128。一個 20 字元的編號若用 Code 39,可能連標準的 2 吋標籤都貼不下;同樣的編號用 Code 128 卻能保持緊湊。

現代的掃描器(面陣影像器與智慧型手機 App)讀取這兩種格式都很輕鬆。但 Code 128 在可靠性上更勝一籌,因為它內建的錯誤偵測機制能在高掃描量環境中避免誤讀。
資料密度:為什麼重要
資料密度指的是一英吋條碼長度內可容納多少字元。維基百科說明,Code 128 的條與空白使用了四種不同寬度,而 Code 39 只用兩種。這種精確度讓 Code 128 在處理數值資料時,密度大約是 Code 39 的兩倍——對於藥用小玻璃瓶或小型電子零件這類必須微型化的一維條碼應用,Code 128 往往是唯一可行的選擇。
字元支援
- Code 39(標準版): 43 個字元——大寫 A–Z、數字 0–9,以及少數符號(-、.、$、/、+、%、空格)。
- Code 128: 完整 128 ASCII 字元——大寫、小寫、符號,甚至包含歸位(carriage return)等控制字元。
- Code 39 Extended: 可透過成對字元編碼小寫字母(例如以「+A」代表小寫「a」),但如同 Peak Technologies 所指出,這種做法「相當浪費空間」,會讓條碼變得不必要地長。
為什麼 Code 128 是現代物流的標準
Code 128 透過 GS1-128 標準驅動全球物流運作,該標準使用「應用識別碼(Application Identifiers)」來結構化批號、有效期限與序號等資料。
強制檢查碼(Modulo 103)
在 Code 39 中,檢查碼是選用的;但在 Code 128 中,它是內建的——條碼會附加一個運算出來的數值,掃描器每次讀取都會加以驗證。這幾乎消除了在繁忙倉庫中「掃錯」的風險。
透過 Code Set A、B、C 達到最佳化
Code 128 透過在三種內部模式間切換,來維持緊湊的尺寸:
| Code Set | 最佳化用途 | 主要優勢 |
|---|---|---|
| A | 大寫字母 + 控制碼 | 工業應用 |
| B | 標準英數字元 + 小寫 | 通用文字 |
| C | 純數值資料 | 每個符號容納兩位數——處理數字最有效率 |
維基百科說明,Code Set C 可將兩位數打包進單一條碼符號中。對於冗長的數值字串來說,這種效率極為驚人。Steven Skiena 的研究顯示,聰明地選擇 Code Set,平均能讓條碼比使用靜態設定時縮小 8%。

Code 39 還有用嗎?
到了 2026 年,Code 39 依然有它的一席之地,因為它簡單且容錯性高。它具備「自我檢查(self-checking)」特性——字元之間的間距有助於隔離錯誤——因此與低解析度印表機或舊型工業掃描器搭配運作時相當順手。
至今仍可見到 Code 39 的場域包括:
– 美國國防部(LOGMARS 標準)
– 醫療業內部追蹤
– 汽車業舊有系統
問題出在 Code 39 Extended。要編碼單一小寫「a」,就得印出「+A」——直接讓條碼長度加倍。如果你的追蹤編號會混用大小寫字母,Code 39 Extended 並不是好選擇。
技術規格:X-Dimension 與留白區
條碼掃描得好不好,取決於 X-dimension——也就是最窄那條 bar 的寬度。根據 GS1 2026 標準,零售結帳掃描的最低 X-dimension 為 0.264 mm (0.0104 inches)。
這兩種格式也都需要 Quiet Zone(留白區)——條碼兩端的空白白色區域,寬度至少為最窄 bar 寬度的 10 倍。少了這塊留白,掃描器就無法判斷條碼從哪裡開始、到哪裡結束。
掃描器相容性
| 掃描器類型 | 最適合搭配 | 備註 |
|---|---|---|
| 雷射掃描器 | 較長、較高的條碼 | 需要雷射光路徑完整橫越所有 bar |
| 面陣影像器(2026 標準) | 兩種格式皆可,含高密度 Code 128 | 可讀取受損或傾斜的標籤 |
| 智慧型手機相機 | 兩種皆可 | iOS/Android 原生支援 |
根據 Gitnux 2024 的資料,零售業佔了全球每日掃描量的 42%——這正是業界持續朝向更可靠的面陣影像標準發展的原因。
結論
Code 39 適用於簡單、短小的內部追蹤編號——尤其是搭配舊型掃描器的舊有系統。Code 128 則是其他情境的明確首選:它更小、支援更多字元、內建強制錯誤檢查,更是現代物流的骨幹。
決策準則:
– 資料少於 10–15 個字元、僅含大寫 → Code 39 可接受
– 資料更長,或包含大小寫/符號 → Code 128
– 需符合 GS1-128 規範 → Code 128(別無選擇)
設計標籤時,請確保最窄的 bar 符合 0.264 mm GS1 標準,以確保條碼在全球各地都能被順利讀取。
常見問題
Code 39 能編碼小寫字母嗎?
標準 Code 39 僅支援大寫字母、數字與少數符號。要編碼小寫字母,需要使用 Code 39 Extended,它透過成對字元來表示(例如「+A」代表「a」)。這會大幅增加條碼的實體長度,效率遠低於 Code 128。
為什麼 Code 128 比 Code 39 更「密」?
Code 128 使用四種 bar/空白寬度(Code 39 僅兩種),而且它的 Code Set C 能在單一符號內編碼兩位數。這讓 Code 128 在處理數值資料時,密度大約是 Code 39 的兩倍,能有效節省寶貴的標籤空間。
Code 39 條碼需要檢查碼嗎?
對 Code 39 來說是選用的,但在高風險環境中建議使用。Code 128 則將 Modulo 103 強制檢查碼內建於規格中,因此在高掃描量場合天生就更具可靠性。
哪種條碼比較適合標籤空間有限的小型物品?
Code 128——它的密度更高,意味著在同樣的實體空間內,你可以用更大的 X-dimension(掃描器更容易讀取)來列印;若換成 Code 39,同樣的空間會被擠得滿滿、難以掃描。

發佈留言