GS1 条形码解析 - 好像没有分隔符
GS1 barcode parsing - It seems that there is no separating character
我有一个解析 GS1 条形码的程序(使用 Zebra 扫描仪),它工作得很好,至少我认为它还可以...
直到我遇到一个带有 2 个 GS1 条形码的盒子。一个“线性”条形码和一个数据矩阵 (UDI)。对于线性,它工作得很好,我成功地得到了 GTIN 和序列号。但是数据矩阵不同。由于某些原因,它的内容比线性代码长一点,最后有一些生产日期和其他内容。
这是线性代码:(01)00380652555852(17)260221(21)25146965079(30)1
这是数据矩阵:(01)00380652555852(17)260221(21)2514696507911210222240SA60AT225
我在解析序列号 - 25146965079 时遇到问题。
GS1 中的序列号长度为 1-20 个字符。这个有 11 个,但是我怎样才能让它在 9 个字符之后停止呢?我怎么知道连续剧到此结束?
我尝试将每个字符转换为 UDI,但似乎没有特殊的分隔字符或任何东西。所以老实说我不知道该怎么做。有人知道吗?
这是代码,如果有人想尝试任何东西 https://prnt.sc/1x2sw8l
那些codes/products直接来自制造商,所以代码应该没有任何问题,我想...
根据 GS1 documentation(第 156 页及以后)
所有字段都正确
(01)00380652555852 --> GTIN
(17)260221 --> 有效期
(21)25146965079 --> 序列号
(11)210222 --> 生产日期
(240)SA60AT225 --> 附加产品标识
我尝试扫描图像,但结果与您的相同。
所以问题是分隔符不存在。这对你来说是个问题,没有分隔符就无法知道序列号在哪里结束。
如果您使用 designed to interpret a GS1 结构的扫描器验证条码,您会发现生成的条码实际上是不正确的。
您缺少 GS after the serial number, these codes MUST end a variable-length field if it's not the last one. This is specified in GS1 general specifications 部分 7.8.5.2
如果没有这个分隔符,您将无法知道序列在哪里结束 - 或者,解释代码的机器无法知道。
告诉制造商他们需要研究GS1 specs。
编辑:“正确”版本应该是:
(01)00380652555852(17)260221(21)25146965079<GS>(11)210222(240)SA60AT225
括号和组分隔符 <GS>
未按字面意思包含在代码中。
由于您有两个可变长度标识符 (21) 和 (240),因此无论您做什么,都需要一个 GS。唯一的选择是为序列号添加一些填充,然后你可以不用分隔符。
我有一个解析 GS1 条形码的程序(使用 Zebra 扫描仪),它工作得很好,至少我认为它还可以... 直到我遇到一个带有 2 个 GS1 条形码的盒子。一个“线性”条形码和一个数据矩阵 (UDI)。对于线性,它工作得很好,我成功地得到了 GTIN 和序列号。但是数据矩阵不同。由于某些原因,它的内容比线性代码长一点,最后有一些生产日期和其他内容。
这是线性代码:(01)00380652555852(17)260221(21)25146965079(30)1 这是数据矩阵:(01)00380652555852(17)260221(21)2514696507911210222240SA60AT225
我在解析序列号 - 25146965079 时遇到问题。 GS1 中的序列号长度为 1-20 个字符。这个有 11 个,但是我怎样才能让它在 9 个字符之后停止呢?我怎么知道连续剧到此结束? 我尝试将每个字符转换为 UDI,但似乎没有特殊的分隔字符或任何东西。所以老实说我不知道该怎么做。有人知道吗?
这是代码,如果有人想尝试任何东西 https://prnt.sc/1x2sw8l
那些codes/products直接来自制造商,所以代码应该没有任何问题,我想...
根据 GS1 documentation(第 156 页及以后)
所有字段都正确
(01)00380652555852 --> GTIN
(17)260221 --> 有效期
(21)25146965079 --> 序列号
(11)210222 --> 生产日期
(240)SA60AT225 --> 附加产品标识
我尝试扫描图像,但结果与您的相同。
所以问题是分隔符不存在。这对你来说是个问题,没有分隔符就无法知道序列号在哪里结束。
如果您使用 designed to interpret a GS1 结构的扫描器验证条码,您会发现生成的条码实际上是不正确的。
您缺少 GS after the serial number, these codes MUST end a variable-length field if it's not the last one. This is specified in GS1 general specifications 部分 7.8.5.2
如果没有这个分隔符,您将无法知道序列在哪里结束 - 或者,解释代码的机器无法知道。
告诉制造商他们需要研究GS1 specs。
编辑:“正确”版本应该是:
(01)00380652555852(17)260221(21)25146965079<GS>(11)210222(240)SA60AT225
括号和组分隔符 <GS>
未按字面意思包含在代码中。
由于您有两个可变长度标识符 (21) 和 (240),因此无论您做什么,都需要一个 GS。唯一的选择是为序列号添加一些填充,然后你可以不用分隔符。