條碼code39與code128差異比較與使用條件

code39 code128【條碼】的發明真的是驅使現代科技自動化進步的一大功臣,雖然現在的條碼編碼方式已經從原本的「一維(1D)」發展進化到了「二維條碼(2D barcode)」,但一維條碼到目前為止還是佔了世界上最大部份的條碼應用。

今天要介紹的Code39及Code128就是一維條碼的代表,而且在工業界使用也非常的廣泛,舉凡手機、相機或是3C產品上的產品編號、序號、網卡位址及IMEI號碼…等,大多使用Code39及Code128這兩種條碼的編碼方式。

當然,這個世界上還有其他林林種種各式各樣的條碼編碼方式被發明出來與應用在特殊場合,像ISBN就被大量運用在書籍與期刊的書碼編碼上面,它紀錄著書籍的國家代號、出版機構、書名、版本及裝訂方式;而EAN-13(European Article Number)則是由歐洲所發展出來,現在則已成為通用的國際商品條碼。不過本文只會把重心放在Code39及Code128這兩種條碼編碼上。

code39的編碼起始碼Code39的編碼方式規定每個字元由5條黑色線條(簡稱Bar),及4條白色線條(簡稱Space),總共9條黑白線所組成,且每個字元固定有3條粗的線條(包含黑線及白線),所以稱之為 Code 3 of 9,簡稱Code39,其線條的寬度只分成粗線及細線兩種,算是最簡單的條碼。

而Code128的每個字元卻只用了6條線組成,3條黑線及3條白線,硬是比Code39足足少了3條線,好厲害!原來Code128線條的寬度分成了4種粗細,所以可以有比較多種組合,這有點類似1bit(兩種變化)Code39)及2bit(4種變化)(Code128)的差別。

按照上面的說明,兩相比較之下,Code39的優點是比Code128來得容易印製與讀取,也就是說讀取的時候Code39應該比較不容易出錯,因為其條碼線條只有兩種變化。但是當同一串訊息使用條碼來表達時,使用Code39條碼所印製的尺寸相對地就比Code128來得寬上許多,這也成了Code39的先天致命傷,再加上掃描槍或掃描機有其最大掃描寬度的限制,在在都限制了 Code39的長遠發展。

相對的Code128的條碼印製明顯就比Code39來得更簡潔並節省空間,而且Code128還可以為使用者提供較高程度的資料保密性,因為可以在條碼中放置許多特殊符號及控制碼,再加上有限的掃描槍掃描寬度,使用Code128在相同的寬度內,相對地也可以存放比較多的資訊內容,只是相對的使用Code128也必須要有比較優秀的印表機來精確列印四種不同粗細的條碼線條。

總體而言,Code39及Code128都是不錯的條碼工具,而且現今幾乎所有的掃描機都可以支援這兩種條碼,包括智慧型手機,只是它們各有其優缺點,工作熊個人建議,如果你需要使用條碼來表達的數據比較短,或是沒有太多空間的限制,那麼建議您使用Code39會比較恰當;如果是一長串的數據,或是列印的空間有其限制性,或是數據中需要用到特殊符號或控制碼,建議使用Code128碼。

以現今科技的條碼印表機來說,列印這些條碼都已經不是什麼太大問題了,問題應該只是如何改變使用習慣而已。

Code 3 of 9 條碼Code 128A 條碼Code 128B 條碼

以下Code39及Code128資料大部分參考【Andy的條碼世界】,該網站有很完整的條碼中文解說。

  Code39條碼 Code128條碼
分類 標準型(44字元)、
完全型(128字元)
有A,B,C三種不同的編碼型態,原則上這三種編碼組合起來可以提供128個標準的ASCII code字元、0~9,英文字母大小寫,各種特殊符號,以及控制碼。
A編碼比較偏重在控制碼。
B編碼比較偏重在小寫英文字母。
C編碼比較偏重在數字00~99。
資料內容 標準型包含有A~Z大寫英文字母,0~9數字,以及一些特殊符號,共計有44個字元。
完全型除上述標準型Code39的44個字元外,再加【/】、【%】、【$ 】、【+】等前置符號即可擴充為128個字元(含一個起始和結束字元)。
A型態字元表,支援的資料碼包含:標準ASCII=0~ASCII=95等字元及控制碼部份,以及7個Code128 條碼專屬字元,共計103個字元。(ASCII=0~31為控制碼,ASCII=32~95為可見字元。)
B型態字元表包含:標準ASCII=32~ASCII=127等字元,以及7個Code128條碼專屬字元,共計103個字元。
C型態字元表主要支援數字00~99的編碼使用,若使用長數字的資料時,可以用C型態編碼,可縮短條碼列印的長度。數字00~99加上3個特殊控制字元,總共103個字元。

特性綜合說明

1.Code39起始碼/結束碼為【*】
2.資料字元數總共有43個,搭配【/】、【%】、【+】、【$】,可擴展成Full ASCII Code 39字元數變成128個。
3.每一字元間有一間隙Gap區隔開來。
4.檢查碼(Check Digit)由計算公式而得。 5.檢查碼(Check Digit)可列印可不列印。 6.條碼長度較長,列印允許長度有限制,易超過條碼讀取機所能讀取之寬度。
1.有一檢查碼,可自由決定是否要列印。
2.在可藉由A、B、C三種不同編碼型態交叉使用,以縮短條碼的長度。
3.可允許由左至右,或由右至左,雙向掃瞄。
條碼編碼方式 Code 3 of 9(簡稱 Code39)是因為其每一字元都是由5條黑色線條(簡稱Bar),4條白色線條(簡稱Space),總共9條線所組合而成,其中有3條線一定是線條。
code39起始碼
"1" 表示粗線條,"0"表細線條
Code128每一字元的條碼結構基本上由3條黑線及3條白線所組成。又可細分為11等分,組成不同的黑白粗細線條。字元最粗的線條最高可達到最細線條的4倍寬。
例如:起始碼Code A
Code128 Cod A 11010000100      
條碼裡頭space最粗是最細線條的4倍

,再舉個例子,以B型態中的特殊符號【/】說明 
Code128B code "/" 10111001100     
最粗的bar是最細bar的3倍。
特性綜合說明 1.Code39起始碼及結束碼皆為【*】符號編碼。
2.資料字元數總共有43個,搭配【/】、【%】、【+】、【$】,可擴展成Full ASCII Code 39字元數變成128個。
3.每一字元間有一間隙Gap區隔開來。
4.檢查碼由計算公式而得。
5.檢查碼可列印可不列印。
6.條碼長度較長,列印允許長度有限制,易超過條碼讀取機所能讀取之寬度。
code39編碼(起始碼+資料內容+結束碼)
code128B編碼(起始碼+資料內容+結束碼)
Code128 條碼內容主要有四個部份:
1.起始碼 (start code)
2.資料碼 (data code)
3.結束碼 (end code)
4.檢查碼 (check code):可有可無

 

文章參考:


延伸閱讀:
解決品質問題只能靠品管工程手法?
新產品有三個驗證階段(EVT/DVT/PVT)
發明始終來自對生活的小小不滿足,記2014年台北國際發明展(二維條碼應用)開發

訪客留言內容(Comments)

整組Bar code 的長度有人稱X dimension, 在Start code 前與Stop code後的空白區域一般稱Quiet Zone,初接觸Bar code的人會忽略Quiet Zone而印的太靠邊,一般是至少需要0.25″的距離, 當然如果客戶有其他要求,需要以客戶的要求為準的

肥喵;
感謝說明與提醒!


訪客留言注意事項:
1.首次留言須通過審核後內容才會出現在版面上,請不要重覆留言。
2.留言時請在相關主題文章下留言,與主題不相關的留言將會被視為垃圾留言,請善加利用【搜尋框】尋找相關文章,找不到主題時請在「水平選單」的「留言板」留言。
3. 留言前請先用【搜尋框】尋找相關文章,自己做一點功課後再留言。沒有前因後果的內容,工作熊不一定會瞭解你在說什麼,就更無法回答你的問題。
4. 工作熊並非某一方面的專家,所以回答的內容或許會有不正確的地方,服用前還請三思。如果您想詢問關於電路板方面的工程問題,前先參考這篇文章【詢問工程問題,請提供足夠的資訊以利有效回答】 把自己的問題想清楚了再來詢問,並且請提供足夠的資訊,這樣才能有效回答問題。
5. 工作熊每則留言都會看,但不會每則留言都回答,尤其是只有問候之類的內容。
6. 留言詢問時請注意您的態度,工作熊不是你的「細漢」,更沒有拿你的薪水,所以不接受吆喝工作熊的態度來回答你的問題。
7. 歡迎您訂閱本部落格的最新文章,當有新文章時會主動以電子郵件通知你。

您有話要說(Leave a comment)

(required)

(required)