GS1-128(GS1 Code 128也称为 UCC-128、EAN-128 和 UCC/EAN-128)是符合 GS128 规范的 Code 128 的变体。与标准代码 128 不同,GS1-128 会自动在起始字符后插入功能代码 1 (FNC1) 字符,因此您可以将应用程序标识符插入到代码中,以对“最佳使用日期”日期、批号、数量或重量等数据进行编码。
GS1-128 继承了 Code 128 的字符集和维度规范。
下列数据可以包含在GS1-128条码内:
- 包装号
- 包装数量
- 重量、容积和立方体积。
- 生产日期和质量有效期
- 批号
- 地址码(目的地)
- 顾客往来账户码
- 顾客定单号
在不同的应用中采用必要 的数据来形成条码标签。
例如,使用EDI(公司间交换电子数据的系统)进行在线购买/定货、食品有效期的管理、药品有效期的管理、简化购入商品检查工作、对各个目的地的包装进行分类等等。(下面是某食品生产厂家的标签样本。)

Code 128 在 ISO/IEC 15417 信息技术 - 自动识别和数据捕获技术 - Code 128 条形码符号规范中定义。GS1 实施在 GS1 一般规范文档中定义。
符号结构 #
该符号由以下元素组成:
- 起始的静音区
- 起始字符
- 表示数据的元件字符
- 校验位
- 停止字符
- 结尾的静音区
符号字符:大多数条形码符号系统仅以两种宽度(宽和窄)打印条形和空格,但 GS1-128 使用 UPC/EAN 系列的四种不同宽度。但是,UPC/EAN 系列每个字符使用四个元素(两个条形和两个空格),而每个 GS1-128 字符由六个元素(三个条形和三个空格)表示。尽管这表示字符密度减少了 50%,但 GS1-128 可以表示所有 128 个 ASCII 字符。此外,与 UPC/EAN 不同,GS1-128 不仅限于数字。
起始字符:GS1-128 有三个不同的起始字符,三个字符代码集中各一个字符:代码集 A、代码集 B 和代码集 C。用于给定条形码的起始字符取决于需要在条形码的该部分中编码的字符。
字符集 #
尽管 GS1-128 字符集本身仅包含 102 个字符,但此符号系统支持所有 128 个低 ASCII 字符。这是可能的,因为 GS1-128 使用三组不同的 102 个字符:代码集 A、代码集 B 和代码集 C。用于任何 GS1-128 条形码的默认代码集由起始字符确定。但是,可以在不同的字符集之间切换,并在单个元件中使用它们的任意组合。因此,GS1-128 在编码数据时为您提供尽可能大的字符密度。
这三个字符代码集可以总结如下:
- 代码集 A:包括所有数值 (0-9)、大写字母字符 (A-Z)、标点符号、七个特殊字符和“控制”字符(ASCII 值 00 到 95)。
- 代码集 B:包括所有数值 (0-9)、大写和小写字母字符(A-Z、a-z)、标点符号和七个特殊字符(ASCII 值 32 到 127)。
- 代码集 C:包括从 00 到 99 的所有数字对和三个特殊字符。此代码集仅包含数字,但任何一个字符实际上都表示两位数。
特殊字符 #
GS1-128 支持以下特殊字符:
- FNC1 系列
- FNC2
- FNC3
- FNC4 系列
这些字符指示条形码阅读器启用特殊操作和应用程序。
应用程序标识符 #
每个 GS1 符号除了编码的数据外,还包含一个或多个应用程序标识符。应用程序标识符是将数据字符串与物理或逻辑事物(如项目编号、序列号或截止日期)相关联的字符序列。
每个应用程序标识符都告诉用户遵循什么类型的数据,并定义同一数据字符串的长度和数据格式。一些应用程序标识符指定包含固定字符数的数据字段,而其他应用程序标识符指定可变长度的数据字段。