我正在寻找解码Code 3 of 9条码格式的正确解决方案。我在维基百科上发现了以下内容:
每个角色由九个元素组成:五个小节和四个空格。每个字符中的九个元素中的三个是宽的(二进制值1),并且六个元素是窄的(二进制值0)。 - Wikipedia
我的问题如下:
我的假设如下:
我们说我们有以下条形码:
让我们关注起始角色*
。我可以想到三种不同的方法可以将这个字符解码为二进制文件:
1
且白条为0
1001 0110 1101
- 12位0
,粗线为1
0100 1010 1
- 9位0
,粗线为11
0110 0110 1101
- 12位哪种解码方法正确?如果没有,那么请让我知道正确的方法是什么。
答案 0 :(得分:1)
我使用16位来表示	 9元素'代码39个字符。例如,星号(' *')看起来像这样' 1000101110111010'在我的软件中。按元素,它们表示条形和空格,交替。您可能会发现阅读代码有困难,假设条形和空间的宽窄比为2:1。
答案 1 :(得分:0)
他们都不是。
代码3为9,代码本身由9个“元素”组成 - 五个条形和四个空格加上一个额外的空格作为字符间间隙。条形或空间“元素”可以是窄的或宽的; 3是宽,6是窄。“第十”元素(字符间空间)总是窄的(IIRC)。代码交替使用条形空间条形空间......例如,编码为nWWnnWnnnN。将其转换为二进制,您有一个9位数(忽略字符间空间N
),与ASCII无关。然后,读者将每个数字映射到ASCII。
某些模式是为方向信息保留的,因此如果条形码被“颠倒”读取,则可以确定正确的结果,否则读取的字符串将显示为乱码,因为前一个字符串nWWnnWnnnN
将被读取为{ {1}}这是一个完全不同的角色。
可选择使用Mod-43校验位。