如何使用 (01)...(10)...(17)...(21)... 解析扫描的 GS1 AI 消息?

问题描述 投票:0回答:2

我有一些产品上面有二维 GS1 条形码。大多数格式为 01.17.10,即 GTIN.Expiry Date.Lot Number.

这是有道理的,因为 01 和 17 是固定长度的,因此可以轻松解析,只需在适当的位置拆分字符串即可。

但是,我也有一些格式为 01.10.17.21(GTIN.Lot.Expiry.Serial Number),这没有意义,因为 Lot 和 Serial number 是可变长度的,这意味着我不能使用位置来解码各种元素。此外,我无法搜索 AI,因为它们可以合法地出现在数据中。

我似乎无法可靠地解码这种格式。我错过了什么吗?

谢谢!

barcode gs1-ai-syntax
2个回答
4
投票

根据 GS 1 网站,“一个条形码中可以携带多个 AI。发生这种情况时,具有固定长度数据内容(例如,SSCC 具有固定长度的 18 位数字)的 AI 被放置在开头和可变长度的 AI 放在末尾。如果一个条形码中放置了多个可变长度的 AI,则使用一个特殊的“功能”字符来告诉扫描仪系统何时结束,何时开始。 "

所以看起来他们打算让您先订购具有固定宽度标识符的 AI。然后用功能字符分隔可变宽度字段,它显示为 FNC1,但实现它取决于您使用的条形码符号系统,例如 DataMatrix、Code 128 和 QR Code 之间可能有所不同。


0
投票

你没有遗漏任何东西。您正在处理的数据丢失了一些东西 u2060— 特别是非终端、可变长度 AI 值末尾的

GS
字符(ASCII 值 29)。

要与 GS1 系统兼容,条形码扫描仪必须:

  • 发出 AIM 符号系统标识符修饰符,指示 FNC1 处于第一位置(“GS1 模式”),或为其提供等效标志。
  • 将第一个或第二个字符位置以外的任何 FNC1 字符作为
    GS
    字符(ASCII 值 29)传输。

FNC1 的这种传输协议可以追溯到第一个支持 GS1 应用程序标识符数据的符号体系,代码 128:

“当 FNC1 用于第一个或第二个位置时,它不应在传输的消息中表示[而是修改符号系统标识符的修饰符以指示 GS1 模式] ...第三个或后续字符位置的 FNC1 作为控制字符 GS(值 29)。” u2060— ISO/IEC 15417:2007 附录 B.4(规范性)。

此答案中提供了更多详细信息。

© www.soinside.com 2019 - 2024. All rights reserved.