热门问题
时间线
聊天
视角

Code39

来自维基百科,自由的百科全书

Code39
Remove ads

Code39(也称为Alpha39Code 3 of 9Code3/9Type 39USS Code39USD-3)是 ISO/IEC 16388:2007 中定义的一种不固定长度的条码。可以表示43个字元,包含大写拉丁字母(A到Z)、数字(0到9)和几个特殊字元(-、.、$,/、+、%与空格)。另有一个外加符号作为终止符号(标示为“*”)。每个字元由九个部分组成:五条线与和四个空格,当中三个部分较宽(二进制1),六个较窄。窄与宽之间的比例并不重要,在1:2和1:3之间都可。

Thumb
“*WIKIPEDIA*”的 Code39 条码

性质

Code39本身不包含校验位(与Code 128不同),但是由于单点错误不会对应到另一个有效的编码,因此可以算是自我校验码。Code39的最严重缺点可能是其数据密度低,与Code 128相比需要更多空间。这表示小型商品不易使用Code39条码。但是,某些邮政系统仍然使用Code39(尽管万国邮政联盟建议在所有情况下都使用Code 128 [1] )。Code39的几个个优点是,只要增加条码字体,就能够用现有的印刷系统印出条码,因为Code39不需要计算校验位置。[2]而且几乎所有的条码扫描器都能解码。

历史

Code39由Intermec英语IntermecDavid Allais英语David Allais与Ray Stevens在1974年开发。原始设计是使用两条粗线与一个宽空格来表示一个字元,总共可以表示40个符号。再保留其中一个作为开始与终止符号,剩下39个符号,这也是Code39的名称来源。[3]之后加入了四个标点符号,并排除粗线与三格宽的空格的编码,将字元集扩展为43个字元。Code39被标准化为ANSI MH 10.8 M-1983和MIL-STD-1189。[4]后者已被取消,并由ANSI/AIM BC1/1995〈Uniform Symbology Specification — Code39〉代替。[5]

编码方式

下面显示的“*”字元不是真正的可编码字元,而是开始与终止符号,其不对称性使阅读器可以确定所扫描条形码的方向。这个符号通常会对映到“*”字元,并且会与条码内容一起以人类可读格式印出。

Thumb
Code39的字元

一般来说,两条粗线的位置可以视为对数字1至10编码;而宽空格的位置(具有四个可能)可视为将字元分为四组(从左到右):

  1. “字母(+30)”:U至Z
  2. “数字(+0)”:1至9与0
  3. “字母(+10)”:A至J
  4. “字母(+20)”:K至T

最后剩下的四个字元只由细线、三个宽空格与一格窄空格组成。窄空格有四个可能的位置。

例如,字母P(第16个字母)的粗线位置与数字6相同,宽空格则放在“字母(+20)”的位置。

在表示数字时,0会用“数字(+0)”的“10”表示。另外因为“字母(+30)”组中只有六个字母(U至Z),因此该组中的其他四个位置(36至39)用于表示“-”、“.”、空格以及开始/终止符号。

两条粗线则用五个可能的位置使用五取二码(每一位分别表示1、2、4、7或0)表示1到10之间的数字。例如数字6被编码为“|▮▮||”,粗线位在2和4的位置(2+4=6)。而“||▮▮|”的数值为4+7=11表示数字0 。 在对(+10至+30)的字母进行编码时,算式需要添加“ -1”,因此字母“A”的编码为“▮|| |▮”,对应的数值为1+10−1=10。

下表是Code39的符号表。每个字元(除了开始/终止符号)的数值会在下节的校验算法中使用。

更多信息 线条, 宽空格 ...

每个字元会用一个窄空格隔开。例如,字母“A”完整编码实际上会加上开始/终止符号,变成“*A*”,对应的条码为“| |▮▮|▮|| |▮| |▮▮|”。只要没有这些空格,就无法正确读取条码,因此条码字体必须要包含这个窄空格。

Code39 mod 43

Code39有时会加上43的校验位。这个功能需要在另外在读取器中开启。加上校验位的条码称为“Code39 mod 43”

每个字元都被分配到一个数值。可以参考上表。

这是校验和的计算方法:

  • 计算条码中所有字元(除了开始/终止符号)的数值总和
  • 将结果除以43
  • 余数即为校验和字元的数值

完整的ASCII Code39

Code39仅能表示34个字元。在ASCII Code39中,0至9、A至Z、“.”、“,”以及空格的符号与Code39相同。小写字母、其他标点符号和控制字元则由两个Code39符号表示。

更多信息 数值, 字元 ...

软件

下列自由与开源的软件可以产生Code39条码:

参考文献

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads