如何正确解码代码39

时间:2015-01-15 19:11:10

标签: barcode decode code39

我正在寻找解码Code 3 of 9条码格式的正确解决方案。我在维基百科上发现了以下内容:

  

每个角色由九个元素组成:五个小节和四个空格。每个字符中的九个元素中的三个是宽的(二进制值1),并且六个元素是窄的(二进制值0)。 - Wikipedia

我的问题如下:

  1. 由"元素"这意味着一个吧?
  2. 一个Code 39数字的二进制输出是否有9或12位二进制数字?
  3. 我的假设如下:

    1. 没有校验位
    2. 我们没有处理完整的ASCII Code 39
    3. 我们说我们有以下条形码:

      enter image description here

      让我们关注起始角色*。我可以想到三种不同的方法可以将这个字符解码为二进制文件:

      1. 假设黑条为1且白条为0
        • 1001 0110 1101 - 12位
      2. 假设细线为0,粗线为1
        • 0100 1010 1 - 9位
      3. 假设细线为0,粗线为11
        • 0110 0110 1101 - 12位
      4. 哪种解码方法正确?如果没有,那么请让我知道正确的方法是什么。

2 个答案:

答案 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校验位。