Кіріспе
39-код (Alpha39, Code 3 of 9, Code 3/9, Type 39, USS Code 39 немесе USD 3) – ISO/IEC 16388:2007 стандартында анықталған өзгермелі ұзындығы бар дискретті штрих-код символикасы. Код 39 спецификациясы 43 таңбаны анықтайды, олар үлкен әріптерден (A-дан Z-ға дейін), сандық цифрлардан (0-ден 9-ға дейін) және бірқатар арнайы таңбалардан ( , ., $, /, +, %, және бос орыннан) тұрады. Бастау және тоқтату белгілері үшін қосымша таңба (*) қолданылады. Әрбір таңба тоғыз элементтен тұрады: бес штрих және төрт бос орын. Әрбір таңбадағы тоғыз элементтің үшеуі кең (бинарлық мәні 1), алтысы тар (бинарлық мәні 0). Штрих-код схемасында тексеру цифры жоқ (мысалы, 128 кодынан айырмашылығы), бірақ ол өзін-өзі тексеруге жарамды, себебі бір ғана қате оқылған штрих басқа жарамды таңбаны тудыра алмайды. Код 39-дың ең маңызды кемшілігі – деректердің төмен тығыздығы: 39-кодта деректерді кодтау үшін, мысалы, 128-кодтағыдан гөрі көбірек орын қажет. Бұл өте кішкентай тауарларды 39-код негізіндегі штрих-кодпен таңбалау мүмкін емес етеді. Дегенмен, Код 39 әлі де кейбір пошта қызметтерінде қолданылады (бірақ Дүниежүзілік пошта одағы барлық жағдайларда 128 кодын пайдалануды ұсынады) және кез келген штрих-код оқырманмен оқуға болады. Код 39-дың бір артықшылығы – тексеру цифрларын жасау қажеттігі болмағандықтан, оны қолданыстағы баспа жүйесіне жүйеге немесе принтерге штрих-код қаріпін қосу және содан кейін шикі деректерді сол қаріппен басып шығару арқылы оңай интеграциялауға болады. Код 39-ды 1974 жылы Intermec компаниясының докторлары Дэвид Аллаис және Рэй Стивенс әзірледі. Олардың бастапқы дизайнында әрбір таңбаға екі кең штрих пен бір кең бос орын кірді, нәтижесінде 40 мүмкін таңба пайда болды. Осы таңбалардың біреуін бастау және тоқтату белгісі ретінде алып тастағаннан кейін 39 таңба қалды, содан Код 39 атауы пайда болды. Кейіннен төрт пунктуациялық таңба қосылды, кең штрихтар мен үш кең бос орынды пайдаланбастан, таңбалар жиынтығы 43-ке дейін кеңейтілді. Код 39 кейінірек ANSI MH 10.8 M 1983 және MIL STD 1189 ретінде стандартталды. MIL STD 1189 күшін жойды және оның орнына ANSI/AIM BC1/1995 бірыңғай симвология спецификациясы – Код 39 енгізілді.
Code 39 (also known as Alpha39, Code 3 of 9, Code 3/9, Type 39, USS Code 39, or USD 3) is a variable length, discrete barcode symbology defined in ISO/IEC 16388:2007. The Code 39 specification defines 43 characters, consisting of uppercase letters (A through Z), numeric digits (0 through 9) and a number of special characters ( , ., $, /, +, %, and space). An additional character (denoted '*') is used for both start and stop delimiters. Each character is composed of nine elements: five bars and four spaces. Three of the nine elements in each character are wide (binary value 1), and six elements are narrow (binary value 0). The barcode scheme does not contain a check digit (in contrast to—for instance—Code 128), but it can be considered self checking on the grounds that a single erroneously interpreted bar cannot generate another valid character. Possibly the most serious drawback of Code 39 is its low data density: It requires more space to encode data in Code 39 than, for example, in Code 128. This means that very small goods cannot be labeled with a Code 39 based barcode. However, Code 39 is still used by some postal services (although the Universal Postal Union recommends using Code 128 in all cases), and can be decoded with virtually any barcode reader. One advantage of Code 39 is that since there is no need to generate a check digit, it can easily be integrated into an existing printing system by adding a barcode font to the system or printer and then printing the raw data in that font. Code 39 was developed by Dr. David Allais and Ray Stevens of Intermec in 1974. Their original design included two wide bars and one wide space in each character, resulting in 40 possible characters. Setting aside one of these characters as a start and stop pattern left 39 characters, which was the origin of the name Code 39. Four punctuation characters were later added, using no wide bars and three wide spaces, expanding the character set to 43 characters. Code 39 was later standardised as ANSI MH 10.8 M 1983 and MIL STD 1189. MIL STD 1189 has been cancelled and replaced by ANSI/AIM BC1/1995, Uniform Symbology Specification — Code 39.
Кодтау
Төменде көрсетілген * символы нақты кодталатын символ емес, бірақ 39-кодтың басталу және тоқтау символы болып табылады. Символдың асимметриясы оқырманға сканерленген штрих-кодтың бағытын анықтауға мүмкіндік береді. Бұл код дәстүрлі түрде штрих-код қаріптерінде * символымен байланыстырылады және көбінесе штрих-кодтың жанында адам оқи алатын түсіндірмемен бірге пайда болады. Жалпы алғанда, екі кең жолақтың орналасуы 1 мен 10 арасындағы санды кодтау ретінде қарастырылады, ал кең аралықтың орналасуы (төрт мүмкін позициясы бар) таңбаны төрт топтың біріне (солдан оңға қарай) жіктеу ретінде қарастырылады: әріптер (+30) (U–Z), сандар (+0) (1–9, 0), әріптер (+10) (A–J) және әріптер (+20) (K–T). Мысалы, P әрпі (әліпбидің 16-шы әрпі) 6 санын көрсету үшін жолақтарын тізімдейді, ал оң жақ шетіндегі кең аралық топты таңдау үшін пайдаланылады. Сан ретінде көрсетілгенде, "10" саны нөлді кодтау үшін қолданылады. (+30) тобында тек алты әріп болғандықтан (U–Z), осы топтағы қалған төрт позиция (36–39) үш символды (дефис, нүкте, бос орын) және басталу/тоқтау символын көрсету үшін қолданылады. Бес мүмкін позицияның ішіндегі екі кең жолақ 1 мен 10 арасындағы санды екіден бес кодты пайдаланып, келесі сандық эквивалентпен кодтайды: 1, 2, 4, 7, 0. Сандар қосылады. Мысалы, 6 саны NWWNN ретінде кодталған, мұнда кең жолақтар 2 және 4 позицияларын (2+4=6) алып тұрады. Егер NNWWN 1=4+7 = 11 болса, ол сандар үшін 0 (+0) және әріптер бағаналары үшін 10 (+10 – +30) деп тағайындалады. (+10-нан +30-ға дейін) әріптерді кодтағанда, теңдеуге "-1" қосылуы керек, сондықтан "A" кестеде көрсетілгендей WNNNW → 1 + 10 − 1 → 10 болады. Соңғы төрт символдың барлығы тар жолақтар мен үш кең аралықтан тұрады. Бір тар аралық үшін төрт мүмкін позиция бар. Бұл кесте Code 39 спецификациясын көрсетеді. Әрбір символға тағайындалған сандық мән (басталу/тоқтаудан басқа) төменде сипатталған тексеру сомасы алгоритмінде қолданылады. Символдар қосымша тар аралықпен бөлінеді. Мысалы, "A" әрпінің толық кодтауы, басталу және тоқтау символдарымен бірге "*A*", мынадай болады: "| |▮▮|▮|| |▮| |▮▮|". Бұл таңбалар аралықтары болмаса, код дұрыс оқылмайды. Штрих-код қаріптерінде осы аралық әрқашан символдың глифінің ішінде болады.
Characters are separated by an additional narrow space. For example, the full encoding for the single letter "A", which actually includes the start and stop characters as "*A*", is "| |▮▮|▮|| |▮| |▮▮|". The code will not be read properly without these inter character spaces. Barcode fonts invariably include this space within the glyph for the character.
Толық ASCII коды 39
39-код 43 символға дейін шектеледі. Толық ASCII коды 39 Символдары 0–9, A–Z, «.», «» және бос орын 39-кодтағы олардың көрсетілуімен бірдей. Кіші әріптер, қосымша тыныс белгілері және басқару таңбалары 39-кодтың екі символдан тұратын тізбектерімен көрсетіледі. Кодтың толық мәліметтері: № Символ Кодтау № Символ Кодтау № Символ Кодтау № Символ Кодтау 0 NUL %U 32 [бос орын] [бос орын] 64 @ %V 96 ` %W 1 SOH $A 33 ! /A 97 a +A 2 STX $B 34 " /B 98 b +B 3 ETX $C 35 # /C 99 c +C 4 EOT $D 36 $ /D 100 d +D 5 ENQ $E 37 % /E 101 e +E 6 ACK $F 38 & /F 102 f +F 7 BEL $G 39 ' /G 103 g +G 8 BS $H 40 ( /H 104 h +H 9 HT $I 41 ) /I 105 i +I 10 LF $J 42 * /J 106 j +J 11 VT $K 43 + /K 107 k +K 12 FF $L 44 , /L 108 l +L 13 CR $M 45 - /M 109 m +M 14 SO $N 46 . /N 110 n +N 15 SI $O 47 / /O 111 o +O 16 DLE $P 48 0 0 112 p +P 17 DC1 $Q 49 1 1 113 q +Q 18 DC2 $R 50 2 2 114 r +R 19 DC3 $S 51 3 3 115 s +S 20 DC4 $T 52 4 4 116 t +T 21 NAK $U 53 5 5 117 u +U 22 SYN $V 54 6 6 118 v +V 23 ETB $W 55 7 7 119 w +W 24 CAN $X 56 8 8 120 x +X 25 EM $Y 57 9 9 121 y +Y 26 SUB $Z 58 : /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