深圳市奧萊新創(chuàng)科技有限公司
聯(lián)系電話 : 王生19926430818/銷售:田洪偉13192283761

Code128條碼及其編碼規(guī)則

49
發(fā)表時間:2022-04-09 12:33

Code128簡介:

Code128碼是由ComputerIdentics Corporation(美國)在1981年研制的,是一種長度可變、連續(xù)性的字母數(shù)字條碼。與其他一維條碼比較起來,相對較為復(fù)雜,支持的字元也相對較多,又有不同的編碼方式可供交互運(yùn)用,因此其應(yīng)用彈性也較大。

Code128特性:

1、具有A、B、C三種不同的編碼類型,可提供標(biāo)準(zhǔn)ASCII中128個字元的編碼使用;

2、允許雙向掃描;

3、可自行決定是否加上檢驗(yàn)位;

4、條碼長度可調(diào),但包括開始位和結(jié)束位在內(nèi),不可超過232個字元;

5、同一個128碼,可以由A、B、C三種不同編碼規(guī)則互換,既可擴(kuò)大字元選擇的范圍,也可縮短編碼的長度。

Code128各編碼方式的編碼范圍:

1、Code128A:標(biāo)準(zhǔn)數(shù)字和字母,控制符,特殊字符;

2、Code128B:標(biāo)準(zhǔn)數(shù)字和字母,小寫字母,特殊字符;

3、Code128C/EAN128:[00]-[99]的數(shù)字對集合,共100個,即只能表示偶數(shù)位長度的數(shù)字。

Code128編碼規(guī)則:

開始位 + [FNC1(為EAN128碼時加)] + 數(shù)據(jù)位 + 檢驗(yàn)位 + 結(jié)束位

Code128檢驗(yàn)位計(jì)算:

(開始位對應(yīng)的ID值 + 每位數(shù)據(jù)在整個數(shù)據(jù)中的位置×每位數(shù)據(jù)對應(yīng)的ID值)% 103

Code128編碼表:

1.jpg

Code128編碼示例:以95270078 為例:

Code128A,開始位對應(yīng)的ID為103,第1位數(shù)據(jù)9對應(yīng)的ID為25,第2位數(shù)據(jù)5對應(yīng)的ID為21,依此類推,可以計(jì)算檢驗(yàn)位 = (103 + 1*25 + 2*21 + 3*18 + 4*23 + 5*16 + 6*16 + 7*23 + 8*24) %103 = 21,即檢驗(yàn)位的ID為21。

對照編碼表,95270078 編碼表示為:開始位StartA(bbsbssssbss)+ 數(shù)據(jù)位[9(bbbssbsbbss)+ 5(bbsbbbssbss)+ 2(bbssbbbssbs)+ 7(bbbsbbsbbbs)+ 0(bssbbbsbbss)+ 0(bssbbbsbbss)+ 7(bbbsbbsbbbs)+ 8(bbbsbssbbss)]+ 檢驗(yàn)位21(bbsbbbssbss)+ 結(jié)束位Stop(bbsssbbbsbsbb),即:

bbsbssssbssbbbssbsbbssbbsbbbssbssbbssbbbssbsbbbsbbsbbbsbssbbbsbbssbssbbbsbbssbbbsbbsbbbsbbbsbssbbssbbsbbbssbssbbsssbbbsbsbb。若要打印,只需將b用黑色線標(biāo)出,s用白色線標(biāo)出,一個簡單的條形碼生成程序就完成了!

128B與128A類似,128C只能對長度為偶數(shù)的數(shù)字串編碼,每兩個數(shù)字為一位,所以輸出的信息壓縮了一半,打印的條形碼因此也就較短。接上例,第1位數(shù)據(jù)95對應(yīng)ID為95,第2位數(shù)據(jù)27對應(yīng)ID為27,第3位數(shù)據(jù)00對應(yīng)ID為0,第4位數(shù)據(jù)78對應(yīng)ID為78,所以檢驗(yàn)位 = (105 + 1*95 + 2*27 + 3*0 + 4*78)% 103 = 51

EAN128與Code128C相同,只是在開始位后加多一個控制位FNC1(ID為102),同時將FNC1做為第1位數(shù)據(jù)加入到檢驗(yàn)位的計(jì)算。

各種方式的編碼結(jié)果羅列如下:

2.jpg

結(jié)合Code128 A、B、C,可以生成最優(yōu)化的編碼,即正確編碼的同時使條碼長度最短,這也是很多條碼打印軟件支持的,稱為Code128Auto,具體做法是在編碼中加入編碼控制符,切換編碼方式。同上例95270078 字符個數(shù)為偶數(shù),采用 CodeC 最優(yōu),編碼方式 為 StartC + 95 + 27 + 00 + 78 + 校驗(yàn) + stop,如果字符再增加一位,假設(shè)是 952700780,可以修改為 StartC + 95 + 27 + 00 + 78 +CodeB + 0 + 校驗(yàn) +stop。


分享到: