코드 39

날짜=2019-03-15 코드 39 바코드 라벨 Code 39로 변환한 * WIKIPEDIA * **코드 39**는 가변 길이의 개별 바코드다. 코드 39는 대문자 (A ~ Z), 숫자 (0-9) 및 특수 문자 (-,., $, /, +, % 및 공백 )로, 총 43자로 구성된다. 추가 글자( '*'로 표시됨)는 시작 구분 기호와 종료 구분 문자 모두에 사용된다. 각 문자는 9 개의 요소로 구성된다 : 5 개의 막대와 4 개의 공백. 각 문자의 9 개 요소 중 3 개는 넓고 (2 진 값 1) 6 개 요소는 좁다. (2 진 값 0) 너비와 너비 간의 너비 비율은 중요하지 않으며 1 : 2에서 1 : 3 사이에서 선택할 수 있다. 바코드 자체에는 확인 숫자가 포함되지 않지만 (코드 128과 대조적으로), 잘못 해석된 단일 막대가 다른 유효한 문자를 생성할 수 없다는 이유로 자체 검사로 간주될 수 있다. 코드 39의 가장 심각한 단점은 낮은 데이터 밀도다. 예를 들어 코드 128보다 코드 39에서 데이터를 인코딩하는 데 더 많은 공간이 필요하다. 즉, 아주 작은 제품에는 코드 39 기반 바코드로 레이블을 지정할 수 없다. 그러나, 비록 코드 39는 여전히 몇몇 우편 서비스에 의해 사용된다. (만국 우편 연합은 모든 경우에 코드 (128)를 사용할 것을 권장하고,As one example of an international standard, see 출판사=Universal Postal Unionurl=http://pls.upu.int/document/2011/an/cep_c_4_gn_ep_4-1/src/d008_ad00_an01_p00_r00.pdf ) 거의 모든 바코드 리더로 디코드할 수 있다. 코드 39의 장점 중 하나는 체크 디지트를 생성할 필요가 없기 때문에 바코드 글꼴을 시스템이나 프린터에 추가한 다음 해당 글꼴로 데이터를 인쇄하여 기존 인쇄 시스템에 쉽게 통합할 수 있다는 것이다. Code 39는 1974년 David Allais 와 Intermec의 Ray Stevens가 개발했다. 그들의 원래 디자인은 두 개의 넓은 막대와 각 문자에 하나의 넓은 공간을 포함하여 40 개의 가능한 문자를 만들었다. 이 문자 중 하나를 시작 및 중단 패턴으로 남겨두면 39 자가 남았다. 이 문자는 Code 39라는 이름의 기원이었다.url-status=dead 나중에 4 개의 구두점 문자가 추가되어 넓은 막대와 3 개의 넓은 공백을 사용하지 않고 문자 세트를 43 자로 확장했다. Code 39는 나중에 ANSI MH 10.8 M-1983 및 MIL-STD-1189로 표준화되었다.url-status=dead 그리고 MIL-STD-1189는 취소되고 ANSI / AIM BC1 / 1995, 통일 기호 표준 - 코드 39로 대체되었다.확인날짜=2011-04-06
# 인코딩
아래 표시된 ***** 문자는 실제 인코딩 가능 문자는 아니지만 코드 39의 시작 및 중지 기호다. 기호의 비대칭성은 판독기로 하여금 스캔되는 바코드의 방향을 결정하게 한다. 이 코드는 전통적으로 바코드 글꼴의 '*' 문자에 매핑되며 바코드와 함께 사람이 읽을 수 있는 표현으로 표시된다. 코드 39 문자 일반적으로 두 개의 넓은 막대의 위치는 1에서 10 사이의 숫자를 인코딩하는 것으로 간주될 수 있으며 넓은 공간의 위치 (네 개의 가능한 위치가 있음)는 문자를 네 개의 그룹 중 하나로 분류하는 것으로 간주될 수 있습니다 ( 왼쪽에서 오른쪽으로) : 문자 (+30) (U-Z), 숫자 (+0) (1-9,0), 문자 (+10) (A-J) 및 문자 (+20) 티). 예를 들어, 문자 P (알파벳의 16 번째 문자)는 숫자 6을 나타내기 위해 막대가 정렬되어 있고 맨 오른쪽 위치의 공백은 그룹 문자 (+20)를 선택한다. 숫자로 표현 될 때 숫자 "10"은 숫자 0을 인코딩하는 데 사용된다. 왜냐면 문자 (+ 30) 그룹에는 문자가 6 개 (문자 30-35 또는 U-Z)이므로 이 그룹의 나머지 4 개 위치 (36-39)는 대시, 마침표, 공백 )뿐만 아니라 시작 및 정지 문자이기 때문이다. 5 개의 가능한 위치 중 두 개의 넓은 막대는 1, 2, 4, 7, 0의 숫자 동등성을 갖는 2의 5 코드를 사용하여 1에서 10 사이의 숫자를 인코딩한다. 숫자는 합산된다. 예를 들어, 숫자 6은 2와 4 (2 + 4 = 6)의 위치를 차지하는 넓은 막대와 함께 NWWNN으로 인코딩된다. NNWWN이 1=4+7 = 11 경우 숫자 (+0)는 0, 문자 열 (+10 - +30)은 10으로 지정된다. (+10에서 +30) 글자를 인코딩 할 때 방정식에 "-1"이 필요하므로 표에 표시된 대로 'A'는 WNNNW → 1 + 10-1 → 10이다. 마지막 네 문자는 모든 좁은 막대와 세 개의 넓은 공백으로 구성된다. 좁은 단일 공간에는 4 가지 위치가 있다. 이 표에는 Code 39 사양이 요약되어 있다. 각 문자에 할당된 숫자 값 (시작 및 정지 제외)은 아래 설명된 체크섬(checksum) 알고리즘에서 사용된다. {| class="wikitable" |+Code 39 글자들 (그리고 checksum 값) ! colspan="2" rowspan="2" |Bars ! colspan="12" |Spaces |- ! colspan="2" ||| ||| !+0 ! colspan="2" |||| || !+10 ! colspan="2" ||||| | !+20 ! colspan="2" || |||| !+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 || |▮▮| |* | |- ! colspan="14" | |- !||||| ! || || | | | + |41 || | || | |/ |40 || | | || |$ |39 ||| | | | |% |42 |} 문자는 좁은 공간으로 구분된다. 예를 들어, 실제로 시작을 포함하고 문자를 중지 단일 문자 "A"의 전체 인코딩 "* A *"이며, " ▮ | | ▮▮ | " 이러한 문자 간 스페이스가 없으면 코드를 제대로 읽을 수 없다. 바코드 글꼴은 문자의 글리프 내에 항상 이 공간을 포함한다.
# 코드 39와 mod 43
코드 39는 선택적 모듈로 43 체크섬과 함께 사용되기도 한다. 이 기능을 사용하려면 이 기능을 바코드 인식기에서 활성화해야 한다. 체크 숫자가 있는 코드를 *코드 39 mod 43* 이라고 한다. 이를 계산하기 위해 각 문자에 하나의 값이 할당된다. 할당은 위의 표에 나열되어 있지만 거의 체계적이지는 않다. 다음은 체크섬 계산을 수행하는 방법이다. * 시작 및 종료 코드를 제외한 바코드의 각 문자 값 (0 - 42)을 가져온다. * 값을 합한다. * 결과를 43으로 나눈다. * 나머지는 추가할 체크섬 문자의 값이다.
# 전체 ASCII 코드 39
코드 39는 43 자로 제한된다. 전체 ASCII 코드 39 기호 0-9, AZ, ".", "-"및 공백은 코드 39의 해당 표현과 동일하다. 소문자, 추가 구두점 문자 및 제어 문자는 코드 39의 두 문자 시퀀스로 나타낸다. {| | colspan="15" |**Code Details** |- |숫자 |글자 |인코딩 | | |숫자 |글자 |인코딩 | | |숫자 |글자 |인코딩 | | |숫자 |글자 |인코딩 |- |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 | |%I | | |94 |^ |%N | | |126 |~ |%S |- |31 |US |%E | | |63 |? |%J | | |95 |_ |%O | | |127 |DEL |%T, %X, %Y, %Z |}