- ベストアンサー
C#でのascii.getByte
現在C#を用いて、機器と通信するプログラムを作成しています. byte[] get_data = System.Text.Encoding.ASCII.GetBytes(rcv_data); 上記のように受信したデータをbyteにエンコーディングしています. 0~127までの場合は問題がないのですが、例えばASCIIコードで134(† : 10000 0110)を受信した場合、byte配列に 63 と変換されて格納されます. 128以上の場合はどのようにすれば良いでしょうか? お分かりになられる方がいらっしゃいましたらご教授宜しく御願い致します.
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
noname#212058
回答No.1
ASCIIコードはそもそも 0~127までしか存在しません。 『128以降』が受け取れないのは当然です。 http://e-words.jp/p/r-ascii.html よって『128以降の文字』が存在する時点で、送られてきて いるデータは普通の ASCII ではありません。 機器で独自に定義した『拡張ASCII』なのか、他のエンコード なのか、機器の仕様を確認されることをお勧めします。 なお、機器の独自仕様(拡張ASCIIなど)である場合は、自分で デコードするプログラムを書く必要があります。
お礼
ご回答ありがとうございます. 拡張ASCIIのキーワードを元に、他の文字コードなどを試してみましたが、 所望の結果を得ることが出来ませんでした. 機器の方のデータ構造を変更して対応しました.8bitデータを7bitに変更 アドバイスありがとうございました.