GS1 单元数据串生成器
填入应用标识符和它们的取值,拿回条码真正承载的那串字符 —— FNC1 分隔符放在规范要求的位置,而括号则留在数据之外、它们本该在的地方。
🔒 你的数据不会离开浏览器 —— 这串是在本地构建的。
三串东西,只有一串是数据
(01)04006381333931(10)LOT-A 是供人识读的解释形式。它印在条下方给人看,而括号从来不参与编码。把括号放进条码,每一台扫描器都会在你的 GTIN 中间读出两个真实的圆括号。
符号真正承载的是 01040063813339311 0LOT-A,变长字段之间夹着一个看不见的 FNC1 —— 也就是 ASCII 的组分隔符,第 29 号字符。本工具把它显示为 <GS> 好让你看清它的位置,而你按复制按钮时复制的是那个真实字符。
分隔符规则的两头
变长元素必须以 FNC1 结束,除非它是最后一个。编码器在这条规则的两头都会出错:漏掉它会让批次号跑进下一个 AI,而多加一个末尾的则会产出不符合规范的符号。顺序同样有影响 —— 把定长标识符排在前面,中间就一个分隔符都不需要了。
这个页面为什么要做往返校验
这里构建的每一串都会被原样喂回我们的 GS1 解析器,再与你输入的内容逐元素比对。一个读不回自己产出的生成器,没资格去印标签,所以比对失败时这串就不给出,而不是照样显示。
本工具执行的全部检查(共 12 条规则)
取值与语法检查用的是同一套引擎 —— 以及同一套规则编号 —— 与物流标签生成器一致。规则编号是对读者的承诺,所以它在本站各处只能是同一个意思。
取值与语法
LGL-001 没有可编码的内容
一张物流标签至少需要 SSCC。
LGL-002 未知的应用标识符
只有 GS1 AI 表里的 AI 才会被编码 —— 未知的 AI 会产出接收方解析不了的条码。
LGL-003 AI 重复
同一个应用标识符在一张物流标签上只能出现一次。
LGL-004 定长 AI 的长度不对
定长 AI(SSCC 为 18 位,GTIN 为 14 位)必须严格相符。
LGL-005 取值过长或为空
变长 AI 的取值不能为空,且不得超过它的上限。
LGL-006 YYMMDD 日期不合法
日期类 AI 是 YYMMDD。对最佳食用期与有效期,DD 可以是 “00” 表示月末。
LGL-007 校验位不通过
SSCC 与 GTIN 都带一位 GS1 模 10 校验位。校验位错了会在每一台接收扫描器上被拒;这里给出应有的那一位。
LGL-008 字符超出 GS1 字符集
取值必须使用 GS1 CSET 82 的字符(字母、数字,以及有限的一组标点)。
LGL-011 数据字符超过 48 个
一个 GS1-128 符号最多承载 48 个数据字符,计入 AI 与作分隔用的 FNC1(不计起始符、前导 FNC1、校验符与终止符)。
修复: 去掉一个字段 —— 通常是批次 —— 或者把数据分到两张标签上。
构建
GS1B-001 编码出来的串解析不回原样
本工具构建的每一个串都会被原样喂回 GS1 解析器,再与输入逐元素比对。若两者不同,输出就不给出:本站自己读不回来的条码,不该让别人去读。
修复: 这属于工具自身的缺陷,请连同输入一起反馈。
来源: yaktool self-check, not a GS1 rule: it is the round-trip property that makes a generator provable rather than merely plausible.
GS1B-002 已在变长元素之后插入 FNC1 分隔符
变长元素必须以 FNC1 结束,除非它是串里最后一个。这条规则的两头在实践中都有人违反:漏掉分隔符的编码器会把两个字段黏在一起,而多加一个末尾分隔符的编码器产出的串不符合规范。
GS1B-003 已把定长 AI 移到前面
长度由前两位固定的 AI 不需要分隔符,所以把它们排在前面能去掉串中间的 FNC1 字符,让符号更短。数据本身没有变 —— 变的只是元素的顺序。
关于这些规则。 每一条都有编号、严重级别和通俗解释。每个来源链接都已登记在案,并对线上页面实际复验过,而不是凭印象写上去的. 规则如何编写、测试与保持更新 →