코드 39

Code 39
A 코드 39 바코드 라벨
*WIKipedia* 코드 39로 암호화됨

코드 39(Alpha39, 코드 3 of 9, 코드 3/9, 유형 39, USS 코드 39 또는 USD-3라고도 함)는 가변 길이, 이산 바코드 공생이다.

코드 39 규격은 대문자(A ~ Z), 숫자 숫자(0 ~ 9) 및 특수 문자(-, , , , $, /, +, %, 공백)로 구성된 43자를 정의한다.시작 구분자와 정지 구분자 모두에 추가 문자('*')가 사용된다.각 문자는 5개의 막대, 4개의 공간 등 9개의 요소로 구성되어 있다.각 문자의 9개 요소 중 3개가 넓으며(이진 값 1) 6개 요소가 좁다(이진 값 0).폭이 좁은 것과 넓은 것의 폭 비율은 중요하지 않으며, 1:2와 1:3 사이에서 선택할 수 있다.

바코드 자체는 체크 디지트를 포함하지 않지만(예: 코드 128과 대조적으로), 잘못 해석된 바 하나가 다른 유효한 문자를 생성할 수 없다는 이유로 자체 점검으로 간주할 수 있다.코드 39의 가장 심각한 단점은 데이터 밀도가 낮다는 것이다.예를 들어 코드 128보다 코드 39의 데이터를 인코딩하는 데 더 많은 공간이 필요하다.이것은 매우 작은 상품에 코드 39 기반 바코드를 부착할 수 없다는 것을 의미한다.그러나 코드 39는 일부 우편 서비스에서 여전히 사용되고 있으며(모든 경우[1] 코드 128을 사용할 것을 유니버설우편연합이 권장하고 있지만), 사실상 모든 바코드 리더로 해독할 수 있다.코드 39의 한 가지 장점은 체크 디지트를 생성할 필요가 없기 때문에 시스템이나 프린터에 바코드 글꼴을 추가한 다음 그 글꼴로 원시 데이터를 인쇄하면 기존 인쇄 시스템에 쉽게 통합될 수 있다는 점이다.

코드 39는 1974년 인터텍허니와 레이 스티븐스에 의해 개발되었다.그들의 원래 디자인은 각 문자에 2개의 넓은 막대와 1개의 넓은 공간을 포함했고, 40개의 가능한 문자를 만들었다.이러한 문자 중 하나를 시작과 정지 패턴으로 따로 떼어놓으면 39자가 남는데, 이것이 코드 39라는 이름의 유래였다.[2]이후 넓은 막대와 3개의 넓은 공간을 사용하여 4개의 구두점 문자가 추가되어 문자 세트가 43자로 확장되었다.코드 39는 나중에 ANSI MH 10.8 M-1983과 MIL-STD-1189로 표준화되었다.[3]MIL-STD-1189가 취소되고 ANSI/AIM BC1/1995, 균일 공생학 규격 — 코드 39로 대체되었다.[4]

인코딩

아래에 제시된 * 문자는 진정한 암호화된 문자는 아니지만 코드 39의 시작 및 중지 기호다.기호의 비대칭성을 통해 독자는 스캔 중인 바코드의 방향을 결정할 수 있다.이 코드는 전통적으로 바코드 글꼴 * 문자에 매핑되며 바코드와 함께 사람이 판독할 수 있는 표현과 함께 나타나는 경우가 많다.

코드 39 문자

일반적으로, 두 개의 넓은 막대의 위치는 1에서 10 사이의 숫자를 인코딩하는 것으로 생각할 수 있으며, 넓은 공간의 위치(가능한 4개의 위치가 있음)는 문자를 네 개의 그룹(좌에서 우로) 중 하나로 분류하는 것으로 생각할 수 있다.문자(+30)(U–Z), 숫자(+0)(1–9,0), 문자(+10)(A–J), 문자(+20)(K–T)가 있다.예를 들어 문자 P(문자의 16번째 문자)는 숫자 6을 나타내도록 막대가 정렬되어 있고, 문자 그룹(+20)을 선택할 수 있는 맨 오른쪽 위치에 있는 공간이 있다.

숫자로 표시되면 숫자 "10"을 사용하여 숫자 0을 인코딩한다.문자(+30) 그룹에는 문자(문자 30-35 또는 U-Z)가 6개뿐이기 때문에 이 그룹의 나머지 4개 위치(36-39)는 시작/정지 문자뿐만 아니라 세 개의 기호(대시, 마침표, 공간)를 나타내기 위해 사용된다.

5개의 가능한 위치 중 두 개의 넓은 막대는 1, 2, 4, 7, 0의 등가 숫자로 된 5개 코드 중 2개를 사용하여 1에서 10 사이의 숫자를 인코딩한다.그 숫자들은 합쳐서 계산된다.예를 들어 숫자 6은 NWWNN으로 인코딩되며, 넓은 막대가 2와 4의 위치를 차지한다(2+4=6).4+7 = 11인 NNWWN의 경우 숫자(+0)는 0으로, 문자 열(+10 – +30)은 10으로 할당된다.(+10 ~ +30) 문자를 인코딩할 때 방정식은 "-1"을 추가해야 하므로 'A'는 표와 같이 WNNW → 1 + 10 - 1 → 10이다.

마지막 네 글자는 모두 좁은 막대와 세 개의 넓은 공간으로 구성되어 있다.좁은 공간 하나에는 네 개의 가능한 위치가 있다.

이 표에는 코드 39 사양이 간략히 설명되어 있다.각 문자에 할당된 숫자 값(시작/정지 제외)은 아래 설명된 체크섬 알고리즘에서 사용된다.

코드 39 문자(및 체크섬 값)
막대 공간
+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"의 전체 인코딩은 " "▮ ▮ ▮ " ""이다.이러한 문자 간 공백이 없으면 코드가 제대로 읽히지 않을 것이다.바코드 글꼴은 반드시 문자의 글리프 내에 이 공간을 포함한다.

코드 39 모드 43

코드 39는 선택적인 modulo 43 체크 디짓과 함께 사용되기도 한다.이 기능을 사용하려면 바코드 판독기에서 이 기능을 활성화해야 한다.체크 디지트가 있는 코드를 코드 39 mod 43이라고 한다.

이를 계산하기 위해 각 문자에는 값이 할당된다.그 과제들은 위의 표에 나열되어 있으며, 거의, 하지만 체계적이지는 않다.

체크섬 계산을 수행하는 방법은 다음과 같다.

  • 바코드의 각 문자 값(0 ~ 42)을 시작 및 정지 코드를 제외한 값으로 구한다.
  • 값을 합하다.
  • 결과를 43으로 나눈다.
  • 나머지는 추가할 체크섬 문자의 값이다.

전체 ASCII 코드 39

코드 39는 43자로 제한된다.전체 ASCII 코드 39 기호 0-9, A-Z, ".", "- 및 공간은 코드 39의 표현과 동일하다.소문자, 추가 구두점 문자, 제어 문자는 코드 39의 두 문자의 시퀀스로 표현된다.

코드 세부 정보
Nr 캐릭터 인코딩 Nr 캐릭터 인코딩 Nr 캐릭터 인코딩 Nr 캐릭터 인코딩
0 NUL %U 32 [공간] [공간] 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 $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 그렇게 엔화 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 X불 56 8 8 88 X X 120 x +X
25 EM $Y 57 9 9 89 Y Y 121 y +Y
26 후보선수 $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 미국 %E 63 ? %J 95 _ %O 127 DEL %T, %X, %Y, %Z

소프트웨어

이러한 무료 오픈 소스 소프트웨어는 코드 39 바코드를 생성할 수 있다.

참조

  1. ^ 국제 표준의 한 예로, 다음을 참조하십시오."Identification of postal items – 13-character identifier" (PDF). Universal Postal Union. 17 October 2017.
  2. ^ Allais, D. C. (2006). "AIDC Memoirs" (PDF). Archived from the original (PDF) on 2013-01-26. Retrieved 2010-06-02. {{cite journal}}:Cite 저널은 필요로 한다. journal=(도움말)
  3. ^ "MIL-STD-1189 Standard Department of Defense Barcode Symbology". 1989-08-10. Archived from the original on 2011-07-22. Retrieved 2010-07-22.
  4. ^ "Adoption Notice: AIM/BC1 Uniform Symbology Specification". 1997-06-19. Archived from the original on 2011-09-27. Retrieved 2011-04-06.
  5. ^ "GNU Barcode". GNU Project. 19 February 2020.