次のことが必要な PDU エンコーダーを作成しようとしています。
- 文字列内の各文字を ASCII 値に変換します
- ASCII 値を 7 ビット バイナリに変換します
- この方法を使用して- 7 ビットを 8 ビットに変換します。最初のセプテットを取得し、次のセプテットの終わりから最初のセプテットが8ビットになるまで追加することにより、関数でこれを行っています(URLに示されているように)。これは基本的にずっと続いています。
- 8 ビット バイナリを使用して、PDU 文字列を 16 進数に変換できます。
以下を使用すると、これらすべてが正常に機能します。
ASCII = Convert.ToInt32(char)Convert.ToString(ASCII, 2)= 7ビットSeptetToOctet(7bit)= 8bit (私の機能)Convert.ToString(Convert.ToInt32(8bit, 2), 16).ToUpper()(1文字のみに変換する場合は0を追加しています)
ここで問題が発生します。デンマーク語の「ø」などの特殊文字を変換しようとすると、ASCII 値 248 がConvert.ToString(248, 2)得られます。これにより、 11111000(8 ビット) が得られます。したがって、'ø' を 7 ビット バイナリに強制的に変換する方法を知る必要があるか、または SeptetToOctet 変換 (これは提供された URL の変換) を修正する必要がありますが、バイナリとバイナリ変換について十分な知識を持っています。それを正しくする方法。