举个例子来说明FNC1的含义:
比如一个GS1-128的条形码,内容是:
(10)123456(30)1000(17)111230
然后对应的条码是:
先来说明,按照GS1-128的格式的话,对应的内容从左到右,依次是:
其中:
3是FNC1,用于表示此条形码是GS1-128。
5是数据中间的FNC1,表示当前的可变长度的AI,即30,的数据,到此结束,后面的是其他AI的数据了。如果不加这个FNC1,那么由于AI是30所对应的数据长度最多是8,那么后面的4位数据1711,就会被误判为30的数据了。
当然,如果本身数据是这样的:
(10)123456 (17)111230(30)1000
即30这个可变长度的AI,是最后一个AI,所以当然不怕再有后面的数据被误以为是30的数据,当然可以省去最后的那个FNC1。
而作为解码器解码后,对于除了第一个FNC1,在数据中间出现的其他的FNC1,都应该替代为ASCII中GS字符=0x1D=29。而第一个FNC1,按理来说,只是GS1-128条码的标示性的内容,不属于条形码中的数据,所以不应该传输出来。
即,解码后,应该传输出来的数据是:
10123456301000[GS]17111230
其中[GS]代表ASCII中的GS字符。
ASCII控制字符 | |
---|---|
GS是ASCII的控制字符中的其中一个。关于ASCII控制字符的详细解释,可参考:ASCII字符集中的功能/控制字符 Function/Control Code/Character in ASCII |