fbpx
维基百科

Code39

Code39(也稱為Alpha39Code 3 of 9Code3/9Type 39USS Code39USD-3)是 ISO/IEC 16388:2007 中定義的一種不固定長度的條碼。可以表示43个字元,包含大寫拉丁字母(A到Z)、数字(0到9)和幾個特殊字元(-、.、$,/、+、%與空格)。另有一個外加符號作為終止符號(標示為「*」)。每个字元由九个部份组成:五條線與和四個空格,當中三個部份較寬(二進位1),六個較窄。窄与宽之间的比例并不重要,在1:2和1:3之間都可。

「*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]

编码方式 编辑

下面显示的「*」字元不是真正的可编码字元,而是開始與終止符號,其不对称性使阅读器可以确定所扫描条形码的方向。這個符號通常會對映到「*」字元,並且會與條碼內容一起以人類可讀格式印出。

 
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)用於表示「-」、「.」、空格以及開始/終止符號。

兩條粗線則用五個可能的位置使用五取二碼英语Two-out-of-five code(每一位分別表示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的符號表。每個字元(除了開始/終止符號)的數值會在下節的校验演算法中使用。

Code39 字元 (與校驗和)
線條 寬空格
|| ||| +0 ||| || +10 |||| | +20 | |||| +30
▮|||▮ 1 ▮| ||▮ 1 1 ▮|| |▮ A 10 ▮||| ▮ K 20 ▮ |||▮ U 30
|▮||▮ 2 |▮ ||▮ 2 2 |▮| |▮ B 11 |▮|| ▮ L 21 | ▮||▮ V 31
▮▮||| 3 ▮▮ ||| 3 3 ▮▮| || C 12 ▮▮|| | M 22 ▮ ▮||| W 32
||▮|▮ 4 || ▮|▮ 4 4 ||▮ |▮ D 13 ||▮| ▮ N 23 | |▮|▮ X 33
▮|▮|| 5 ▮| ▮|| 5 5 ▮|▮ || E 14 ▮|▮| | O 24 ▮ |▮|| Y 34
|▮▮|| 6 |▮ ▮|| 6 6 |▮▮ || F 15 |▮▮| | P 25 | ▮▮|| Z 35
|||▮▮ 7 || |▮▮ 7 7 ||| ▮▮ G 16 |||▮ ▮ Q 26 | ||▮▮ - 36
▮||▮| 8 ▮| |▮| 8 8 ▮|| ▮| H 17 ▮||▮ | R 27 ▮ ||▮| . 37
|▮|▮| 9 |▮ |▮| 9 9 |▮| ▮| I 18 |▮|▮ | S 28 | ▮|▮| 38
||▮▮| 10 || ▮▮| 0 0 ||▮ ▮| J 19 ||▮▮ | T 29 | |▮▮| *
||||| | | | || $ 39 | | || | / 40 | || | | + 41 || | | | % 42

每個字元會用一個窄空格隔開。例如,字母「A」完整编码实际上會加上開始/終止符號,變成「*A*」,對應的條碼為「| |▮▮|▮|| |▮| |▮▮|」。只要没有这些空格,就无法正确读取條碼,因此條碼字體必須要包含這個窄空格。

Code39 mod 43 编辑

Code39有時會加上43的校验位。這個功能需要在另外在讀取器中開啟。加上校验位的條碼称为「Code39 mod 43」

每個字元都被分配到一個數值。可以參考上表。

这是校验和的计算方法:

  • 計算條碼中所有字元(除了開始/終止符號)的數值總和
  • 將結果除以43
  • 餘數即為校验和字元的數值

完整的ASCII Code39 编辑

Code39僅能表示34個字元。在ASCII Code39中,0至9、A至Z、「.」、「,」以及空格的符號與Code39相同。小寫字母、其他標點符號和控制字元則由兩個Code39符號表示。

編碼表
數值 字元 編碼 數值 字元 編碼 數值 字元 編碼 數值 字元 編碼
0 NUL %U 32 [space] [space] 64 @ %V 96 ` %W
1 SOH $A 33 ! /A 65 A A 97 a +A
2 STX $B 34 " /B 66 B B 98 b +B
3 ETX $C 35 # /C 67 C C 99 c +C
4 EOT $D 36 $ /D 68 D D 100 d +D
5 ENQ $E 37 % /E 69 E E 101 e +E
6 ACK $F 38 & /F 70 F F 102 f +F
7 BEL $G 39 ' /G 71 G G 103 g +G
8 BS $H 40 ( /H 72 H H 104 h +H
9 HT $I 41 ) /I 73 I I 105 i +I
10 LF $J 42 * /J 74 J J 106 j +J
11 VT $K 43 + /K 75 K K 107 k +K
12 FF $L 44 , /L 76 L L 108 l +L
13 CR $M 45 - - 77 M M 109 m +M
14 SO $N 46 . . 78 N N 110 n +N
15 SI $O 47 / /O 79 O O 111 o +O
16 DLE $P 48 0 0 80 P P 112 p +P
17 DC1 $Q 49 1 1 81 Q Q 113 q +Q
18 DC2 $R 50 2 2 82 R R 114 r +R
19 DC3 $S 51 3 3 83 S S 115 s +S
20 DC4 $T 52 4 4 84 T T 116 t +T
21 NAK $U 53 5 5 85 U U 117 u +U
22 SYN $V 54 6 6 86 V V 118 v +V
23 ETB $W 55 7 7 87 W W 119 w +W
24 CAN $X 56 8 8 88 X X 120 x +X
25 EM $Y 57 9 9 89 Y Y 121 y +Y
26 SUB $Z 58 : /Z 90 Z Z 122 z +Z
27 ESC %A 59 ; %F 91 [ %K 123 { %P
28 FS %B 60 < %G 92 \ %L 124 | %Q
29 GS %C 61 = %H 93 ] %M 125 } %R
30 RS %D 62 > %I 94 ^ %N 126 ~ %S
31 US %E 63 ? %J 95 _ %O 127 DEL %T, %X, %Y, %Z

軟體 编辑

下列自由與開源的軟體可以產生Code39條碼:

参考文献 编辑

  1. ^ As one example of an international standard, see Identification of postal items – 13-character identifier (PDF). Universal Postal Union. 28 October 2010. [失效連結]
  2. ^ . Google Fonts. [2019-05-20]. (原始内容存档于2019-10-20). 
  3. ^ Allais, D. C. AIDC Memoirs (PDF). 2006 [2010-06-02]. (原始内容 (PDF)于2013-01-26). 
  4. ^ MIL-STD-1189 Standard Department of Defense Barcode Symbology. 1989-08-10 [2010-07-22]. (原始内容于2011-07-22). 
  5. ^ Adoption Notice: AIM/BC1 Uniform Symbology Specification. 1997-06-19 [2011-04-06]. (原始内容于2011-09-27). 
  6. ^ GNU Barcode. GNU Project. 19 February 2020 [2020-08-25]. (原始内容于2020-05-28). 

code39, 也稱為alpha39, code, code3, type, 或usd, 16388, 2007, 中定義的一種不固定長度的條碼, 可以表示43个字元, 包含大寫拉丁字母, a到z, 数字, 0到9, 和幾個特殊字元, 與空格, 另有一個外加符號作為終止符號, 標示為, 每个字元由九个部份组成, 五條線與和四個空格, 當中三個部份較寬, 二進位1, 六個較窄, 窄与宽之间的比例并不重要, 在1, 2和1, 3之間都可, wikipedia, 條碼, 目录, 性質, 歷史, 编码方式, 完整的asci. Code39 也稱為Alpha39 Code 3 of 9 Code3 9 Type 39 USS Code39或USD 3 是 ISO IEC 16388 2007 中定義的一種不固定長度的條碼 可以表示43个字元 包含大寫拉丁字母 A到Z 数字 0到9 和幾個特殊字元 與空格 另有一個外加符號作為終止符號 標示為 每个字元由九个部份组成 五條線與和四個空格 當中三個部份較寬 二進位1 六個較窄 窄与宽之间的比例并不重要 在1 2和1 3之間都可 WIKIPEDIA 的 Code39 條碼 目录 1 性質 2 歷史 3 编码方式 4 Code39 mod 43 5 完整的ASCII Code39 6 軟體 7 参考文献性質 编辑Code39本身不包含校验位 与Code 128不同 但是由于单點错误不會對應到另一個有效的編碼 因此可以算是自我校驗碼 Code39的最严重缺点可能是其数据密度低 與Code 128相比需要更多空間 這表示小型商品不易使用Code39條碼 但是 某些郵政系統仍然使用Code39 尽管萬國郵政聯盟建议在所有情况下都使用Code 128 1 Code39的幾個个优点是 只要增加條碼字體 就能夠用現有的印刷系統印出條碼 因為Code39不需要計算校驗位置 2 而且幾乎所有的條碼掃描器都能解碼 歷史 编辑Code39由Intermec 英语 Intermec 的David 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 编码方式 编辑下面显示的 字元不是真正的可编码字元 而是開始與終止符號 其不对称性使阅读器可以确定所扫描条形码的方向 這個符號通常會對映到 字元 並且會與條碼內容一起以人類可讀格式印出 nbsp Code39的字元一般來說 兩條粗線的位置可以視為對數字1至10編碼 而宽空格的位置 具有四个可能 可视为将字元分为四組 从左到右 字母 30 U至Z 数字 0 1至9與0 字母 10 A至J 字母 20 K至T最後剩下的四个字元只由細線 三個寬空格與一格窄空格组成 窄空格有四個可能的位置 例如 字母P 第16個字母 的粗線位置與數字6相同 寬空格則放在 字母 20 的位置 在表示数字时 0會用 數字 0 的 10 表示 另外因為 字母 30 组中只有六个字母 U至Z 因此该组中的其他四个位置 36至39 用於表示 空格以及開始 終止符號 兩條粗線則用五個可能的位置使用五取二碼 英语 Two out of five code 每一位分別表示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的符號表 每個字元 除了開始 終止符號 的數值會在下節的校验演算法中使用 Code39 字元 與校驗和 線條 寬空格 0 10 20 30 1 1 1 A 10 K 20 U 30 2 2 2 B 11 L 21 V 31 3 3 3 C 12 M 22 W 32 4 4 4 D 13 N 23 X 33 5 5 5 E 14 O 24 Y 34 6 6 6 F 15 P 25 Z 35 7 7 7 G 16 Q 26 36 8 8 8 H 17 R 27 37 9 9 9 I 18 S 28 38 10 0 0 J 19 T 29 39 40 41 42每個字元會用一個窄空格隔開 例如 字母 A 完整编码实际上會加上開始 終止符號 變成 A 對應的條碼為 只要没有这些空格 就无法正确读取條碼 因此條碼字體必須要包含這個窄空格 Code39 mod 43 编辑Code39有時會加上模43的校验位 這個功能需要在另外在讀取器中開啟 加上校验位的條碼称为 Code39 mod 43 每個字元都被分配到一個數值 可以參考上表 这是校验和的计算方法 計算條碼中所有字元 除了開始 終止符號 的數值總和 將結果除以43 餘數即為校验和字元的數值完整的ASCII Code39 编辑Code39僅能表示34個字元 在ASCII Code39中 0至9 A至Z 以及空格的符號與Code39相同 小寫字母 其他標點符號和控制字元則由兩個Code39符號表示 編碼表 數值 字元 編碼 數值 字元 編碼 數值 字元 編碼 數值 字元 編碼0 NUL U 32 space space 64 V 96 W1 SOH A 33 A 65 A A 97 a A2 STX B 34 B 66 B B 98 b B3 ETX C 35 C 67 C C 99 c C4 EOT D 36 D 68 D D 100 d D5 ENQ E 37 E 69 E E 101 e E6 ACK F 38 amp F 70 F F 102 f F7 BEL G 39 G 71 G G 103 g G8 BS H 40 H 72 H H 104 h H9 HT I 41 I 73 I I 105 i I10 LF J 42 J 74 J J 106 j J11 VT K 43 K 75 K K 107 k K12 FF L 44 L 76 L L 108 l L13 CR M 45 77 M M 109 m M14 SO N 46 78 N N 110 n N15 SI O 47 O 79 O O 111 o O16 DLE P 48 0 0 80 P P 112 p P17 DC1 Q 49 1 1 81 Q Q 113 q Q18 DC2 R 50 2 2 82 R R 114 r R19 DC3 S 51 3 3 83 S S 115 s S20 DC4 T 52 4 4 84 T T 116 t T21 NAK U 53 5 5 85 U U 117 u U22 SYN V 54 6 6 86 V V 118 v V23 ETB W 55 7 7 87 W W 119 w W24 CAN X 56 8 8 88 X X 120 x X25 EM Y 57 9 9 89 Y Y 121 y Y26 SUB Z 58 Z 90 Z Z 122 z Z27 ESC A 59 F 91 K 123 P28 FS B 60 lt G 92 L 124 Q29 GS C 61 H 93 M 125 R30 RS D 62 gt I 94 N 126 S31 US E 63 J 95 O 127 DEL T X Y Z軟體 编辑下列自由與開源的軟體可以產生Code39條碼 GNUBarcode 页面存档备份 存于互联网档案馆 6 gLabels 页面存档备份 存于互联网档案馆 Libre Barcode Project 页面存档备份 存于互联网档案馆 参考文献 编辑 As one example of an international standard see Identification of postal items 13 character identifier PDF Universal Postal Union 28 October 2010 失效連結 Google Fonts Google Fonts 2019 05 20 原始内容存档于2019 10 20 Allais D C AIDC Memoirs PDF 2006 2010 06 02 原始内容存档 PDF 于2013 01 26 MIL STD 1189 Standard Department of Defense Barcode Symbology 1989 08 10 2010 07 22 原始内容存档于2011 07 22 Adoption Notice AIM BC1 Uniform Symbology Specification 1997 06 19 2011 04 06 原始内容存档于2011 09 27 GNU Barcode GNU Project 19 February 2020 2020 08 25 原始内容存档于2020 05 28 取自 https zh wikipedia org w index php title Code39 amp oldid 77066618, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。