Code 39 (також відомий як «USS Code 39», «Code 3/9», «Code 3 of 9», «USD-3», «Alpha39») — штрих-кодове позначення, яким можна закодувати великі латинські літери (від A по Z), цифри (від 0 до 9) та деяких спеціальних символів таких як знак долара '$'. Штрих-код сам по собі не містить контрольної суми (на противагу, наприклад, ). Цей код може зчитати будь-який .
Кодування
Символ *, який згадується нижче, не є правдивим закодованим символом, він є 'символом' початку/кінця для Code 39. Асиметричність бітового представлення символу дозволяє зчитувачам визначати напрямок просканованого штрих-коду. Цей код традиційно збігається із символом * у шрифтах штрих-коду та часто з'являтиметься у представленні, доступному для читання людиною поряд зі штрих-кодом.
Ці таблиці описують специфікацію 3 з 9:
Legend | ||
Format1 | Format2 | Опис |
W | B | Широка — Чорна |
N | b | Вузька — Чорна |
w | W | Широка — Біла |
n | w | Вузька — Біла |
Code Details | ||
Char | Format1 | Format2 |
* | NwNnWnWnN | bWbwBwBwb |
- | NwNnNnWnW | bWbwbwBwB |
$ | NwNwNwNnN | bWbWbWbwb |
% | NnNwNwNwN | bwbWbWbWb |
(space) | NwWnNnWnN | bWBwbwBwb |
. | WwNnNnWnN | BWbwbwBwb |
/ | NwNwNnNwN | bWbWbwbWb |
+ | NwNnNwNwN | bWbwbWbWb |
0 | NnNwWnWnN | bwbWBwBwb |
1 | WnNwNnNnW | BwbWbwbwB |
2 | NnWwNnNnW | bwBWbwbwB |
3 | WnWwNnNnN | BwBWbwbwb |
4 | NnNwWnNnW | bwbWBwbwB |
5 | WnNwWnNnN | BwbWBwbwb |
6 | NnWwWnNnN | bwBWBwbwb |
7 | NnNwNnWnW | bwbWbwBwB |
8 | WnNwNnWnN | BwbWbwBwb |
9 | NnWwNnWnN | bwBWbwBwb |
A | WnNnNwNnW | BwbwbWbwB |
B | NnWnNwNnW | bwBwbWbwB |
C | WnWnNwNnN | BwBwbWbwb |
D | NnNnWwNnW | bwbwBWbwB |
E | WnNnWwNnN | BwbwBWbwb |
F | NnWnWwNnN | bwBwBWbwb |
G | NnNnNwWnW | bwbwbWBwB |
H | WnNnNwWnN | BwbwbWBwb |
I | NnWnNwWnN | bwBwbWBwb |
J | NnNnWwWnN | bwbwBWBwb |
K | WnNnNnNwW | BwbwbwbWB |
L | NnWnNnNwW | bwBwbwbWB |
M | WnWnNnNwN | BwBwbwbWb |
N | NnNnWnNwW | bwbwBwbWB |
O | WnNnWnNwN | BwbwBwbWb |
P | NnWnWnNwN | bwBwBwbWb |
Q | NnNnNnWwW | bwbwbwBWB |
R | WnNnNnWwN | BwbwbwBWb |
S | NnWnNnWwN | bwBwbwBWb |
T | NnNnWnWwN | bwbwBwBWb |
U | WwNnNnNnW | BWbwbwbwB |
V | NwWnNnNnW | bWBwbwbwB |
W | WwWnNnNnN | BWBwbwbwb |
X | NwNnWnNnW | bWbwBwbwB |
Y | WwNnWnNnN | BWbwBwbwb |
Z | NwWnWnNnN | bWBwBwbwb |
Будь ласка, зауважте: In between each character (the start and stop characters included). There is a thin space (shown as w below). For example, if you wanted a Code 39 barcode composed of the letter «A», you would need the following to be encoded: «*A*». [bWbwBwBwb]w[BwbwbWbwB]w[bWbwBwBwb]
The code will not be read without these spaces.
Code 39 mod 43
Code 39 is sometimes, though rarely, used with an optional 43 . Using it requires this feature to be enabled in the barcode reader. The code with check digit is referred to as Code 39 mod 43.
Як обрахувати :
- Взяти значення (від 0 до 42) кожного символу у штрих-коді за виключенням початкового та кінцевого кодів.
- Просумувати значення.
- Поділити результат на 43.
- Це число позначатиме символ контрольної суми, який необхідно доповнити.
Зокрема на мові Visual Basic відповідний вираз буде такий:
Const charSet As String = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%" Function Mod43(C39 As String) As String For i = 1 To Len(C39) total = InStr(charSet, Mid(C39, i, 1)) - 1 + total Next i Mod43 = C39 & Mid$(charSet, (total Mod 43 + 1), 1) End Function
а на мові Java так (з перевіркою неправильних символів):
public static final String charSet = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%"; public static char getChecksum(String barCode) throws Exception { int total = 0; CharacterIterator it = new StringCharacterIterator(barCode); for (char ch = it.current(); ch != CharacterIterator.DONE; ch = it.next()) { int charValue = charSet.indexOf(ch); if (charValue == -1) { // Invalid character. throw new Exception("Input String '" +barCode+ "' contains characters that are invalid in a Code39 barcode."); } total += charValue; } int checksum = total % 43; return charSet.charAt(checksum); }
Code 39 з повною таблицею ASCII
Code 39 обмежується 44 символами. In Full ASCII Code 39 Symbols 0-9, A-Z, «.» ,and «-» are the same as their representations in Code 39. Lower case letters, additional punctuation characters and control characters are represented by sequences of two characters of Code 39.
Code Details | ||||||||||||||
Nr | Character | Encoding | Nr | Character | Encoding | Nr | Character | Encoding | Nr | Character | Encoding | |||
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 |
Див. також
Посилання
- Вільні шрифти для Code 39 — TrueType та OpenType [ 8 квітня 2008 у Wayback Machine.]
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Code 39 takozh vidomij yak USS Code 39 Code 3 9 Code 3 of 9 USD 3 Alpha39 shtrih kodove poznachennya yakim mozhna zakoduvati veliki latinski literi vid A po Z cifri vid 0 do 9 ta deyakih specialnih simvoliv takih yak znak dolara Shtrih kod sam po sobi ne mistit kontrolnoyi sumi na protivagu napriklad Cej kod mozhe zchitati bud yakij Nalipki zi shtrih kodom Code 39 Slovo WIKIPEDIA zakodovane u Code 39KoduvannyaSimvol yakij zgaduyetsya nizhche ne ye pravdivim zakodovanim simvolom vin ye simvolom pochatku kincya dlya Code 39 Asimetrichnist bitovogo predstavlennya simvolu dozvolyaye zchituvacham viznachati napryamok proskanovanogo shtrih kodu Cej kod tradicijno zbigayetsya iz simvolom u shriftah shtrih kodu ta chasto z yavlyatimetsya u predstavlenni dostupnomu dlya chitannya lyudinoyu poryad zi shtrih kodom Ci tablici opisuyut specifikaciyu 3 z 9 Legend Format1Format2Opis WBShiroka Chorna NbVuzka Chorna wWShiroka Bila nwVuzka Bila Code Details CharFormat1Format2 NwNnWnWnNbWbwBwBwb NwNnNnWnWbWbwbwBwB NwNwNwNnNbWbWbWbwb NnNwNwNwNbwbWbWbWb space NwWnNnWnNbWBwbwBwb WwNnNnWnNBWbwbwBwb NwNwNnNwNbWbWbwbWb NwNnNwNwNbWbwbWbWb 0NnNwWnWnNbwbWBwBwb 1WnNwNnNnWBwbWbwbwB 2NnWwNnNnWbwBWbwbwB 3WnWwNnNnNBwBWbwbwb 4NnNwWnNnWbwbWBwbwB 5WnNwWnNnNBwbWBwbwb 6NnWwWnNnNbwBWBwbwb 7NnNwNnWnWbwbWbwBwB 8WnNwNnWnNBwbWbwBwb 9NnWwNnWnNbwBWbwBwb AWnNnNwNnWBwbwbWbwB BNnWnNwNnWbwBwbWbwB CWnWnNwNnNBwBwbWbwb DNnNnWwNnWbwbwBWbwB EWnNnWwNnNBwbwBWbwb FNnWnWwNnNbwBwBWbwb GNnNnNwWnWbwbwbWBwB HWnNnNwWnNBwbwbWBwb INnWnNwWnNbwBwbWBwb JNnNnWwWnNbwbwBWBwb KWnNnNnNwWBwbwbwbWB LNnWnNnNwWbwBwbwbWB MWnWnNnNwNBwBwbwbWb NNnNnWnNwWbwbwBwbWB OWnNnWnNwNBwbwBwbWb PNnWnWnNwNbwBwBwbWb QNnNnNnWwWbwbwbwBWB RWnNnNnWwNBwbwbwBWb SNnWnNnWwNbwBwbwBWb TNnNnWnWwNbwbwBwBWb UWwNnNnNnWBWbwbwbwB VNwWnNnNnWbWBwbwbwB WWwWnNnNnNBWBwbwbwb XNwNnWnNnWbWbwBwbwB YWwNnWnNnNBWbwBwbwb ZNwWnWnNnNbWBwBwbwb Bud laska zauvazhte In between each character the start and stop characters included There is a thin space shown as w below For example if you wanted a Code 39 barcode composed of the letter A you would need the following to be encoded A bWbwBwBwb w BwbwbWbwB w bWbwBwBwb The code will not be read without these spaces Code 39 mod 43Code 39 is sometimes though rarely used with an optional 43 Using it requires this feature to be enabled in the barcode reader The code with check digit is referred to as Code 39 mod 43 Yak obrahuvati Vzyati znachennya vid 0 do 42 kozhnogo simvolu u shtrih kodi za viklyuchennyam pochatkovogo ta kincevogo kodiv Prosumuvati znachennya Podiliti rezultat na 43 Ce chislo poznachatime simvol kontrolnoyi sumi yakij neobhidno dopovniti Zokrema na movi Visual Basic vidpovidnij viraz bude takij Const charSet As String 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ Function Mod43 C39 As String As String For i 1 To Len C39 total InStr charSet Mid C39 i 1 1 total Next i Mod43 C39 amp Mid charSet total Mod 43 1 1 End Function a na movi Java tak z perevirkoyu nepravilnih simvoliv public static final String charSet 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ public static char getChecksum String barCode throws Exception int total 0 CharacterIterator it new StringCharacterIterator barCode for char ch it current ch CharacterIterator DONE ch it next int charValue charSet indexOf ch if charValue 1 Invalid character throw new Exception Input String barCode contains characters that are invalid in a Code39 barcode total charValue int checksum total 43 return charSet charAt checksum Code 39 z povnoyu tabliceyu ASCIICode 39 obmezhuyetsya 44 simvolami In Full ASCII Code 39 Symbols 0 9 A Z and are the same as their representations in Code 39 Lower case letters additional punctuation characters and control characters are represented by sequences of two characters of Code 39 Code Details NrCharacterEncoding NrCharacterEncoding NrCharacterEncoding NrCharacterEncoding 0NUL U 32 space space 64 V 96 W 1SOH A 33 A 65AA 97a A 2STX B 34 B 66BB 98b B 3ETX C 35 C 67CC 99c C 4EOT D 36 D 68DD 100d D 5ENQ E 37 E 69EE 101e E 6ACK F 38 amp F 70FF 102f F 7BEL G 39 G 71GG 103g G 8BS H 40 H 72HH 104h H 9HT I 41 I 73II 105i I 10LF J 42 J 74JJ 106j J 11VT K 43 K 75KK 107k K 12FF L 44 L 76LL 108l L 13CR M 45 77MM 109m M 14SO N 46 78NN 110n N 15SI O 47 O 79OO 111o O 16DLE P 4800 80PP 112p P 17DC1 Q 4911 81QQ 113q Q 18DC2 R 5022 82RR 114r R 19DC3 S 5133 83SS 115s S 20DC4 T 5244 84TT 116t T 21NAK U 5355 85UU 117u U 22SYN V 5466 86VV 118v V 23ETB W 5577 87WW 119w W 24CAN X 5688 88XX 120x X 25EM Y 5799 89YY 121y Y 26SUB Z 58 Z 90ZZ 122z Z 27ESC A 59 F 91 K 123 P 28FS B 60 lt G 92 L 124 Q 29GS C 61 H 93 M 125 R 30RS D 62 gt I 94 N 126 S 31US E 63 J 95 O 127DEL T X Y ZDiv takozhShtrih koduvannyaPosilannyaVilni shrifti dlya Code 39 TrueType ta OpenType 8 kvitnya 2008 u Wayback Machine