私は VB.NET を使用しており、シリアル経由でデータのバイトを送受信する必要があります。173 のようなものを送信する必要があるまでは、これで問題ありません。サブルーチンを使用して、入力を整数として受け取り、それを文字に変換して出力するバイトを送信しています。
Private Sub PrintByte(ByVal input As Integer)
serialPort.Write(Chr(input))
End Sub
私が試したら
PrintByte(173)
または、実際には127を超えるものは63を送信します。これは少し奇妙だと思ったので、ASCIIテーブルを調べたところ、63は?に対応しているようです。キャラクター。だから、何が起こっているのかと思うのは、VB.NETがその数字を認識できない文字にエンコードしようとしているので、?.
どのエンコーディングを使用すればよいですか? また、エンコーディングの変更をどのように実装しますか?