技術情報
Code128の意味
コードセット
- Code128はアスキー文字コードのフルセットを表示できる規格ですが、128のアスキー文字すべてに単純にコードを割り振っているわけではありません。
- コードセットという概念を導入し、コードセットごとにバーコードシンボルとキャラクタを結びつけています。(下の換算表参照)
- コードセットCでは数字2個を一つのバーコードシンボルで表しますので、このコードセットを使用すると、複雑な数字の組み合わせを短いバーコードシンボルで表示できます。
コードセットA 英数字(大文字)、制御コードおよび特殊コード
コードセットB 英数字(大文字・小文字)、及び特殊コード
コードセットC 00~99の数字2個の組み合わせ、及び特殊コード
コードキャラクタ
- 各コードセット内には「コードA」「コードB」「コードC」という特殊キャラクタがあります。
- このキャラクタが現れると、以降のコードセットが変更されます。
- この変更は次に再び変更されるか、コードの最後まで有効です。
シフトキャラクタ
- シフトキャラクタ直後の1キャラクタだけを、指定のコードセットで解釈します。
- その後は元のコードセットにもどります。
ファンクションキャラクタ
- 「FNC1」~「FNC4」があり、特殊な用途に用いられます。
- 「FNC2」はメッセージの一時蓄積機能、「FNC3」は読み取り装置の初期化に用いられます。
- UCC/EAN128では、スタートキャラクタの直後に、「FNC1」を置きます。読み取り装置はこのキャラクタでUCC/EAN128バーコードであることを知ります。
- UCC/EAN128では、可変長の項目区切りとしても「FNC1」を使用します。
チェックキャラクタ
- Code128ではチェックキャラクタが必要です。ストップキャラクタの前に置きます。計算方法は「モジュラス103」という方式で、以下のような手順で計算したキャラクタを表します。
- 1. 表示キャラクタ(スタートキャラクタを含め、ストップキャラクタを含まない)を下の換算表で数値に変換する。
- 2. 全部の数値の合計をとり、103で割り、余りを求める。
- 3. 換算表から、余りに相当するキャラクタを選んで、ストップキャラクタの前に置く。
表示内容 | CodeB | C | o | d | e | 1 | 2 | 8 | 合計 |
換算した数値(A) | 104 | 35 | 79 | 68 | 69 | 17 | 18 | 24 | |
重み(B) | 1 | 1 | 2 | 3 | 4 | 5 | 6 | 75 | |
(A)×(B) | 104 | 35 | 158 | 204 | 276 | 85 | 108 | 168 | 1138 |
103で割った余り | 5 | ||||||||
チェックキャラクタ | % |
チェック キャラクタ 計算用数値 |
キャラクタ | チェック キャラクタ 計算用数値 |
キャラクタ | |||||
---|---|---|---|---|---|---|---|---|
コードA | コードB | コードC | コードA | コードB | コードC | |||
0 | (SP) | (SP) | 00 | 53 | U | U | 53 | |
1 | ! | ! | 01 | 54 | V | V | 54 | |
2 | “ | “ | 02 | 55 | W | W | 55 | |
3 | # | # | 03 | 56 | X | X | 56 | |
4 | $ | $ | 04 | 57 | Y | Y | 57 | |
5 | % | % | 05 | 58 | Z | Z | 58 | |
6 | & | & | 06 | 59 | [ | [ | 59 | |
7 | ‘ | ‘ | 07 | 60 | \ | \ | 60 | |
8 | ( | ( | 08 | 61 | ] | ] | 61 | |
9 | ) | ) | 09 | 62 | ^ | ^ | 62 | |
10 | * | * | 10 | 63 | _ | _ | 63 | |
11 | + | + | 11 | 64 | NUL | ‘ | 64 | |
12 | , | , | 12 | 65 | SOH | a | 65 | |
13 | – | – | 13 | 66 | STX | b | 66 | |
14 | . | . | 14 | 67 | ETX | c | 67 | |
15 | / | / | 15 | 68 | EOT | d | 68 | |
16 | 0 | 0 | 16 | 69 | ENQ | e | 69 | |
17 | 1 | 1 | 17 | 70 | ACK | f | 70 | |
18 | 2 | 2 | 18 | 71 | BEL | g | 71 | |
19 | 3 | 3 | 19 | 72 | BS | h | 72 | |
20 | 4 | 4 | 20 | 73 | HT | i | 73 | |
21 | 5 | 5 | 21 | 74 | LF | j | 74 | |
22 | 6 | 6 | 22 | 75 | VT | k | 75 | |
23 | 7 | 7 | 23 | 76 | FF | l | 76 | |
24 | 8 | 8 | 24 | 77 | CR | m | 77 | |
25 | 9 | 9 | 25 | 78 | SO | n | 78 | |
26 | : | : | 26 | 79 | SI | o | 79 | |
27 | ; | ; | 27 | 80 | DEL | p | 80 | |
28 | < | < | 28 | 81 | DC1 | q | 81 | |
29 | = | = | 29 | 82 | DC2 | r | 82 | |
30 | > | > | 30 | 83 | DC3 | s | 83 | |
31 | ? | ? | 31 | 84 | DC4 | t | 84 | |
32 | @ | @ | 32 | 85 | NAK | u | 85 | |
33 | A | A | 33 | 86 | SYN | v | 86 | |
34 | B | B | 34 | 87 | ETB | w | 87 | |
35 | C | C | 35 | 88 | CAN | x | 88 | |
36 | D | D | 36 | 89 | EM | y | 89 | |
37 | E | E | 37 | 90 | SUB | z | 90 | |
38 | F | F | 38 | 91 | ESC | { | 91 | |
39 | G | G | 39 | 92 | FS | | | 92 | |
40 | H | H | 40 | 93 | GS | } | 93 | |
41 | I | I | 41 | 94 | RS | ~ | 94 | |
42 | J | j | 42 | 95 | US | DEL | 95 | |
43 | K | K | 43 | 96 | FNC 3 | FNC 3 | 96 | |
44 | L | L | 44 | 97 | FNC 2 | FNC 2 | 97 | |
45 | M | M | 45 | 98 | SHIFT | SHIFT | 98 | |
46 | N | N | 46 | 99 | CODE C | CODE C | 99 | |
47 | O | O | 47 | 100 | CODE B | FNC 4 | CODE B | |
48 | P | P | 48 | 101 | FNC 4 | CODE A | CODE A | |
49 | Q | Q | 49 | 102 | FNC 1 | FNC 1 | FNC 1 | |
50 | R | R | 50 | 103 | スタートA | |||
51 | S | S | 51 | 104 | スタートB | |||
52 | T | T | 52 | 105 | スタートC |