0

ここのチャートによると:

http://www.idautomation.com/barcode-faq/code-128/

このキャラクター:

Ë

値 103 に相当します。

まだこのコード:

string barcode = textBoxRawCode128.Text.Trim(); 
. . .
int runningTotal = ConvertToASCIIInt(barCode[0]);
. . .

private int ConvertToASCIIInt(char valToConvertToASCII)
{
    const int ASCII_ADJUSTMENT_VAL = 32;
    return valToConvertToASCII - ASCII_ADJUSTMENT_VAL;
}

...テキストボックスの値、つまりバーコードの値が「ËTry another string.」の場合、barcode[0] が「Ë」の場合、103 ではなく 171 の値が返されます...???

このチャートによると: http://www.adams1.com/128table.html、103 に対応する値は‡ですが、barCode を「‡Try another string.」に設定すると、返される値は 8193 です... ??? ますます好奇心旺盛…。

注: 関連/予備投稿は、Code128 バーコード チェック ディジットを計算するためのこのコードは正しいですか?

4

2 に答える 2

4

実際に表示された文字の値はË=203です。smallgは ascii 値を持つ文字です103

したがって203 - 32 = 171

参照

于 2013-09-11T19:07:05.783 に答える
1

Code 128 シンボルの正しい数値を見つけるには 32 を引く必要があることに注意してください。したがって、Code 128 シンボル 103 の ASCII 値を取得するには、32 を足す必要があり、7 ビットではない 135 になります。アスキー。Adams の意見は正しいのですが、「高 ASCII」であるため、コード ページの混乱に陥ります。そのため、PC の言語によって、また文字列に触れるアプリケーションが DBCS、Unicode、または 8 ビット ASCII を使用している場合、国際標準が異なるため、異なる文字が見つかる場合があります。Windows Character Map アプリケーションで Small Fonts タイプフォントを表示すると、Russ Adams によって指定された文字を見つけることができます。「0x87」の下の文字を見てください。これは 10 進数で 135 です。

IDAutomation の人々は、独自のアルゴリズムを使用して、入力された文字に基づいてバーコード文字に到達しているため、103 を取得するには「Ë」が必要であると言う場合、それが必要です。「Ë」は 103 と同等ではありません。これは、ソフトウェアが 103 を吐き出すためのものです。これはすべて、数値 7 ビット標準からバーを生成するためのベンダーの方法への変換を回避するためです。

残念なことに、異なるシンボルはデータのエンコードやチェックサムの導出に同じアルゴリズムを使用しないため、バーコードの種類ごとに独自のソフトウェアが必要です。

于 2013-09-11T23:25:01.267 に答える