9

我们需要解析对方提供的 GS1 数据矩阵条码。我们知道他们将使用 GTIN(01)、批号 (10)、到期日期 (17)、序列号 (21)。问题是条形码阅读器输出一个字符串,格式是这样的 01076123456789001710050310AC3453G321455777。由于没有分隔符,而且根据 GS1 标准,序列号和批号都是可变长度的,因此我们很难识别分段。我的理解是,似乎最好的解析方式是将解析器嵌入扫描设备中,而不是来自应用程序。但是我们还没有计划嵌入软件。如何实现解析器?有什么建议么?

4

2 回答 2

6

未填充到最大值的可变长度字段的末尾应该有一个 FNC1 字符;这样 FNC1 就会出现在G3和之间21

FNC1 对人类是不可见的,但可以被扫描仪检测到,并将在扫描仪报告的字符串中重现。只需将字符串直接发送到文本文件并使用十六进制阅读器检查文本。FNC1应该是显而易见的。

如果可以的话,交换21字段和10字段的顺序可能是一个想法,因为您似乎正在使用纯数字 for 21。这将使生成的条码更短一些。

于 2014-08-21T16:13:22.703 回答
2

解决此问题的一种方法是对扫描仪进行编程,以在将 FNC1 发送到您的应用程序之前将其替换为空格或其他纯文本字符。扫描仪制造商通常会提供一种工具来生成可以在扫描仪中进行简单替换的编程条形码。然后您可以解析数据而无需处理特殊字符。

于 2016-08-17T18:03:49.253 回答