条码知识之九:EAN-128条码(上)

时间:2023-03-08 18:13:18

 EAN-128码,现称GS1-128码,是专用于GS1系统中的条码,可以标注商品的附加信息,在商品信息的标识、产品的跟踪与追溯中有广泛的用途。

EAN-128码来自于CODE-128码,在字符集、条空规则上与CODE-128码完全一致,因此我们需要先来介绍一下CODE-128码。

CODE-128码是一种用模块组配法编制的条码,三套字符集共可以表示128个符号,故称128码,字符集包含数字,大小写英文字母、符号、控制符和00-99的100个双位数的数字。每个字符的条码符号由三条三空11个模块组成,终止符为四条三空13个模块。下图是三个字符集的字符与条空结构对照表。由图中可以看出,与商品条码的三个子集不同,三个字符集共用一套条空结构,每一个字符集都有107个符号,每一个符号都有一个字符值。字符集A和字符集B中的字符大部分是重叠的,只有字符值64以后的符号不同,字符集A中包含了控制符,而字符集B中包含了小写字母;字符集C除了最后七个辅助字符外,只包含了100个双位数的数字,由00-99,其对应的字符值与字符本身相同。

条码知识之九:EAN-128条码(上)

CODE-128码的编码规则:一个CODE-128条码由左空白区、起始符、数据字符、校验符、终止符、右空白区和供人识读的字符构成。

1、起始符有三个,分别是START A,START B和START C,起始符说明了该条码中的数据使用的字符集。当表示的数据是四个或四个以上连续的数字时,必须使用START C,以缩短条码的长度。

2、校验符由起始符和数据区的字符值决定,其计算方法参见之前的《校验码的计算》一文。CODE-128码的校验符是条码本身的特性,它不是数据的一部分,因此校验符不会在供人识读的数据中出现。

3、终止符STOP由四条三空13个模块构成,三个字符集的终止符是同一个符号。

由于字符集B中包含了比较丰富的字符,所以表示由英文字母和符号构成的数据时通常都会选用B字符集,如果只用大写字母则选字符集A和字符集B是一样的。

编码示例:(1)BEIJING'08   (2) GS1-CHINA   (3)20091020

(1) |START A| B | E |  I  | J |  I  | N | G |  '  | 0 | 8 |校验符|STOP|   (使用A字符集)

把以上字符对应的条空结构连接起来就构成了一个表示BEIJING'08的条码符号。
        (2) |START B| G | S | 1 | - | C | H |  I  | N | A |校验符|STOP|  (使用B字符集)

(3) |START C|20|09|10|20|校验符|STOP|   (使用C字符集)

*注意使用C字符集的(3)与使用A字符集的(1)中表示数字的不同点,AB字符集只能表示单个的数字,而C字符集每一个条码符号都表示2位数字。

CODE-128条码允许在条码中间改变使用的字符集,这个功能依靠另外三个辅助字符来完成:CODE A,CODE B,CODE C。例如POSTCODE450002用128条码表示:

|START A| P | O | S | T | C | O | D | E | 4 | 5 | 0 | 0 | 0 | 2 |校验符|STOP|

全部使用A字符集,一共要使用17个码字。如果把数字部分改用C字符集就会缩短条码的长度,使用15个码字:

|START A| P | O | S | T | C | O | D | E |CODE C| 45 | 00 | 02 |校验符|STOP|

另一个辅助字符SHIFT可以使其后的一个字符从字符集A进入字符集B或从字符集B进入字符集A,之后的第二个字符及以后的符号仍然回到原字符集,它不能进入或退出字符集C。例:

|START B| C | h |  i  | n | a |SHIFT| CR | W | o | r |  l  | d |校验符|STOP|

该条码在阅读时可以产生以下效果:

China

World

原因是SHIFT让其后的一个字符CR使用了字符集A,而CR是计算机中的回车键,即在读出China后产生一个回车键再读World。