코드 39
Code 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의 시작 및 중지 기호다.기호의 비대칭성을 통해 독자는 스캔 중인 바코드의 방향을 결정할 수 있다.이 코드는 전통적으로 바코드 글꼴의 * 문자에 매핑되며 바코드와 함께 사람이 판독할 수 있는 표현과 함께 나타나는 경우가 많다.
일반적으로, 두 개의 넓은 막대의 위치는 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 사양이 간략히 설명되어 있다.각 문자에 할당된 숫자 값(시작/정지 제외)은 아래 설명된 체크섬 알고리즘에서 사용된다.
| 막대 | 공간 | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| +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 바코드를 생성할 수 있다.
참조
- ^ 국제 표준의 한 예로, 다음을 참조하십시오."Identification of postal items – 13-character identifier" (PDF). Universal Postal Union. 17 October 2017.
- ^ Allais, D. C. (2006). "AIDC Memoirs" (PDF). Archived from the original (PDF) on 2013-01-26. Retrieved 2010-06-02.
{{cite journal}}:Cite 저널은 필요로 한다.journal=(도움말) - ^ "MIL-STD-1189 Standard Department of Defense Barcode Symbology". 1989-08-10. Archived from the original on 2011-07-22. Retrieved 2010-07-22.
- ^ "Adoption Notice: AIM/BC1 Uniform Symbology Specification". 1997-06-19. Archived from the original on 2011-09-27. Retrieved 2011-04-06.
- ^ "GNU Barcode". GNU Project. 19 February 2020.
