これはどこかで答えられている場合は謝罪しますが、もしあれば、私はそれを見つけることができませんでした。一貫性のあるバイトの無効な文字の表現
私はバイト配列でいくつかの操作をしており、無効な文字(たとえば0x9Cバイト)を変換するときに "?"と解釈されることに気づいています。したがって、それをバイトに変換すると、0x3Fとして出力されます。
私の問題は、バイト配列の一部はASCIIですが、他のものはこのような無効な文字を含む可能性のあるチェックサムです。私は便利なために文字列に配列全体を変換することができるようにしたいと思います。通常の文字に対してASCIIを生成するエンコーディングがあり、無効な文字を文字列に変換して戻すと同じバイトが生成されることを確認しますか?
無効なデータを取得する可能性のある値があります。 byte []を文字列として表現する必要があるなら、 'Convert.ToBase64String(' 'Convert.FromBase64String(' 'また、' 'System.Text.Encoding.Default'はコンピュータ間でデータを送信する予定です。システムとは異なります。チェックサムを取って自分のバイト[]にして、それらのbase64テキストを文字列の最後に追加してください。 –
デフォルトはマシン、ユーザー、時間によって異なります。質問に記載されている前後変換のコンテキストを操作する機会があります。 –
追加する必要があります。私のマシンのデフォルトがSystem.Text.Encoding.SBCSCodePageEncodingであることがわかりました。まだ無効なデータが残っている可能性がありますが、それまでは正常に動作しています – Cobalt