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,其对应的字符值与字符本身相同。

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。

最新文章

  1. FineReport实现EXCEL数据导入自由报表
  2. 移动WEB viewport 相关知识
  3. Django 基础(一)
  4. 分享Kali Linux 2016.2第45周VMware虚拟机
  5. PHP 用文件流方式展示图片
  6. Apache编译与安装 RedHat enterprises 6.2
  7. CentOS升级git
  8. php获取请求的方式(get/post)
  9. CentOS 6.4 64位 源码编译hadoop 2.2.0
  10. 深入浅出数据结构C语言版(1)——什么是数据结构及算法
  11. 使用PowerPoint
  12. ListView 与ContextMenu的关联管理
  13. 2019年6月pmp考试马上开始!报考9月怎么进行中文报名?
  14. C语言常用的编程规范
  15. 从.Net到Java学习第七篇——SpringBoot Redis 缓存穿透
  16. Centos服务器端口无法访问
  17. Java设计模式学习记录-装饰模式
  18. Get filename from URL using Javascript
  19. Match 3 小项目学习
  20. Sklearn数据集与机器学习

热门文章

  1. Summer Holiday(强联通入度最小点)
  2. SQL Server数据转换【包括Geometry类型】的技巧总结
  3. js兼容性大全
  4. Jquery 遍历数组之grep()方法介绍
  5. django datetime format 日期格式化
  6. WTL error C3861: 'DDX_Control': identifier not found
  7. JavaSE学习总结第27天_反射 & 设计模式 & JDK5、7、8新特性
  8. servlet同一用户的不同页面共享数据
  9. CRM中的一个函数,保存一下,别系统被ぅ崩坏就麻烦了.
  10. [LeetCode]题解(python):005-Longest Palindromic Substring