コード39

Code 39 (別名Alpha39Code 3 of 9Code 3/9Type 39USS Code 39、またはUSD-3 ) は、 ISO / IEC 16388:2023 で定義されている可変長の個別バーコードシンボルです。

Code 39仕様では、大文字(A~Z)、数字(0~9)、およびいくつかの特殊文字(-、.、$、/、+、%、スペース)で構成される43文字が定義されています。開始区切り文字と終了区切り文字の両方に、追加の文字(「*」で表記)が使用されます。各文字は、5本のバーと4本のスペースの9つの要素で構成されます。各文字の9つの要素のうち3つは幅広(バイナリ値1)で、6つは幅狭(バイナリ値0)です。

バーコード方式にはチェック デジットが含まれていませんが (たとえば、コード 128とは対照的)、1 本のバーを誤って解釈しても別の有効な文字を生成できないという理由で、自己チェック機能があると考えることができます。コード 39 の最も重大な欠点はおそらくデータ密度が低いことです。コード 39 でデータをエンコードするには、たとえばコード 128 よりも多くのスペースが必要です。つまり、非常に小さい商品にコード 39 ベースのバーコードを付けることはできません。ただし、コード 39 は一部の郵便サービスでまだ使用されており (万国郵便連合ではすべての場合にコード 128 の使用を推奨していますが[1] )、事実上すべてのバーコード リーダーでデコードできます。コード 39 の利点の 1 つは、チェック デジットを生成する必要がないため、バーコード フォントをシステムまたはプリンターに追加して生データをそのフォントで印刷することで、既存の印刷システムに簡単に統合できることです。

Code 39は、 1974年にインターメック社のデイビッド・アレイ博士とレイ・スティーブンスによって開発されました。当初の設計では、各文字に2本の太いバーと1本の太いスペースが含まれており、合計40文字の文字が使用可能でした。これらの文字のうち1文字を開始パターンと終了パターンとして除外すると、39文字となり、これがCode 39という名前の由来となりました。[2]その後、太いバーを使わず3本の太いスペースを使用する4つの句読点が追加され、文字セットは43文字に拡張されました。Code 39は後にANSI MH 10.8 M-1983およびMIL-STD-1189として標準化されました。[3] MIL-STD-1189は廃止され、ANSI/AIM BC1/1995、Uniform Symbology Specification — Code 39に置き換えられました。[4]

エンコーディング

以下に示す*文字は、真のエンコード可能な文字ではありませんが、Code 39のスタートシンボルとストップシンボルです。このシンボルの非対称性により、リーダーはスキャンするバーコードの方向を判断できます。このコードは、従来、バーコードフォントでは*文字にマッピングされており、多くの場合、人間が読める形式でバーコードと一緒に表示されます。

コード39の文字

一般的に、2本の太いバーの位置は1から10までの数字をエンコードしていると考えられ、太いスペースの位置(4つの位置が考えられます)は、文字を4つのグループ(左から右へ)のいずれかに分類するものと考えられます。文字(+30) (U~Z)、数字(+0) (1~9,0)、文字(+10) (A~J)、文字(+20) (K~T)です。例えば、アルファベットの16番目の文字であるPは、バーの位置が数字の6を表すように配置されており、右端のスペースは文字(+20)グループを選択するために配置されています。

数字で表す場合、「10」は数字のゼロを表すために使用されます。文字(+30)グループ(文字番号30~35、つまりU~Z)には6つの文字しかないため、このグループの残りの4つの位置(36~39)は、3つの記号(ダッシュ、ピリオド、スペース)と開始/終了文字を表すために使用されます。

5つの位置のうち2つの幅広バーは、 1、2、4、7、0という数値等価性を持つ5つ中2つのコードを使用して、1から10までの数字をエンコードします。これらの数字は合計されます。例えば、数字6はNWWNNでエンコードされ、幅広バーは2と4の位置を占めます(2+4=6)。NNWWNの場合、4+7 = 11となり、数字の0(+0)と文字の10(+10~+30)に割り当てられます。+10~+30の文字をエンコードする場合、式に「-1」を加算する必要があるため、「A」は表に示すようにWNNNW → 1 + 10 - 1 → 10となります。

最後の4文字はすべて細いバーと3つの広いスペースで構成されます。1つの狭いスペースの位置は4通りあります。

この表はCode 39の仕様を概説しています。各文字(スタート/ストップを除く)に割り当てられた数値は、後述するチェックサムアルゴリズムで使用されます。

Code 39 文字(およびチェックサム値)
バースペース
|| |||+0||| ||+10|||| |+20| ||||+30
▮|||▮1▮| ||▮11▮|| |▮10▮||| ▮K20▮ |||▮あなた30
|▮||▮2|▮ ||▮22|▮| |▮B11|▮|| ▮L21| ▮||▮V31
▮▮|||3▮▮ |||33▮▮| ||C12▮▮|| |M22▮ ▮|||W32
||▮|▮4|| ▮|▮44||▮ |▮D13||▮| ▮23| |▮|▮X33
▮|▮||5▮| ▮||55▮|▮ ||E14▮|▮| |24▮ |▮||はい34
|▮▮||6|▮ ▮||66|▮▮ ||F15|▮▮| |P25| ▮▮||Z35
|||▮▮7|| |▮▮77||| ▮▮G16|||▮ ▮質問26| ||▮▮-36
▮||▮|8▮| |▮|88▮|| ▮|H17▮||▮ |R27▮ ||▮|37
|▮|▮|9|▮ |▮|99|▮| ▮|18|▮|▮ |S28| ▮|▮|38
||▮▮|10|| ▮▮|00||▮ ▮|J19||▮▮ |T29| |▮▮|*
|||||| | | | |$39| | || |/40| || | |+41|| | | |%42

文字は追加の狭いスペースで区切られます。例えば、単一の文字「A」の完全なエンコードは、実際には開始文字と終了文字を含む「*A*」で、「| |▮▮|▮|| |▮| |▮▮|」となります。これらの文字間スペースがないと、コードを正しく読み取ることができません。バーコードフォントでは、文字のグリフ内に必ずこのスペースが含まれています。

コード39チェックディジット

Code 39は、オプションのモジュロ10または43チェックデジットと組み合わせて使用​​されることがあります。この機能を使用するには、バーコードリーダーでこの機能を有効にする必要があります。チェックデジット付きのコードは、それぞれCode 39 mod 10またはCode 39 mod 43と呼ばれます。

これを計算するため、各文字に値が割り当てられます。割り当ては上の表に示されていますが、ほぼ体系的ですが、完全に体系的ではありません。

チェックサム計算を実行するには

  • スタートコードとストップコードを除いたバーコードの各文字の値 (0 ~ 42) を取得します。
  • 値を合計します。
  • 結果を 10 (Mod 10 チェック ディジットの場合) または 43 (Mod 43 チェック ディジットの場合) で割ります。
  • 残りは追加されるチェックサム文字の値です。

フルASCIIコード39

Code 39は43文字に制限されています。Full ASCII Code 39では、0~9、A~Z、."、-"、およびスペースはCode 39での表現と同じです。小文字、追加の句読点、および制御文字は、Code 39の2文字のシーケンスで表現されます。

コードの詳細
番号キャラクターエンコーディング   番号キャラクターエンコーディング   番号キャラクターエンコーディング   番号キャラクターエンコーディング
0ヌル%U   32[空間][空間]   64@%V   96`%W
1SOH$A   33!/A   65   971つの+A
2STX$B   34/B   66BB   98b+B
3ETX$C   35#/C   67CC   99c+C
4終了時刻$D   36$/D   68DD   100d+D
5ENQ$E   37%/E   69EE   101e+E
6確認$F   38/F   70FF   102f+F
7ベル$G   39'/G   71GG   103グラム+G
8学士$H   40/H   72HH   104h+H
9HT$I   41/私   73   105+私
10LF$J   42*/J   74JJ   106j+J
11VT千ドル   43+/K   75KK   107+K
12FF$L   44/L   76LL   108l+L
13CR百万ドル   45--   77MM   109メートル+M
14それで$N   46   78   110n+N
15SI$O   47//O   79   111o+O
16DLE$P   4800   80PP   112p+P
17DC1$Q   4911   81質問質問   113q+Q
18DC2$R   5022   82RR   114r+R
19DC3$S   5133   83SS   115s+S
20DC4$T   5244   84TT   116t+T
21ナク$U   5355   85あなたあなた   117あなた+U
22シン$V   5466   86VV   118v+V
23ETB$W   5577   87WW   119+W
24できる$X   5688   88XX   120×+X
25EM$Y   5799   89はいはい   121y+Y
26サブ$Z   58:/Z   90ZZ   122z+Z
27ESC%A   59;%F   91[%K   123{%P
28FS%B   60<%G   92\%L   124|%Q
29GS%C   61%H   93]%M   125}%R
30RS%D   62>%私   94^%N   126%S
31私たち%E   63?%J   95_%O   127削除%T、%X、%Y、%Z

ソフトウェア

次の無料のオープンソース ソフトウェアは、 Code 39 バーコードを生成できます。

  • GNUバーコード[5]
  • Zint と libzint。
  • glbarcode++ と glabels

参考文献

  1. ^ 国際標準の一例として、「郵便物の識別 - 13文字の識別子」(PDF)を参照。万国郵便連合。2017年10月17日。
  2. ^ Allais, DC (2006). 「AIDC Memoirs」(PDF) . 2013年1月26日時点のオリジナル(PDF)からアーカイブ。 2010年6月2日閲覧 {{cite journal}}:ジャーナルを引用するには|journal=ヘルプ)が必要です
  3. ^ 「MIL-STD-1189 国防総省標準バーコードシンボル体系」(PDF) 1989年8月10日. 2024年7月1日時点のオリジナルよりアーカイブ(PDF) 2024年6月30日閲覧
  4. ^ “Adoption Notice: AIM/BC1 Uniform Symbology Specification”. 1997年6月19日. 2011年9月27日時点のオリジナルよりアーカイブ。 2011年4月6日閲覧
  5. ^ 「GNUバーコード」. GNUプロジェクト. 2020年2月19日.
「https://en.wikipedia.org/w/index.php?title=Code_39&oldid=1308308126」より取得