私はbyte[]を持っているという非常に奇妙な問題に直面しており、これをConvert.UTF8.GetString(byte [] bytes)メソッドに渡すと、システムエンコーディングが私のバイトを混乱させ、いくつかの特別なバイトのみを置き換えます(私のシステムでマーカーとして使用しています)いくつかの3文字の文字列表現に。
[0] 70 byte
[1] 49 byte
[2] 45 byte
[3] 86 byte
[4] 49 byte
[5] 253 byte <-- Special byte
[6] 70 byte
[7] 49 byte
[8] 45 byte
[9] 86 byte
[10]50 byte
[11]253 byte <-- Special byte
[12]70 byte
[13]49 byte
[14]45 byte
[15]86 byte
[16]51 byte
上記のbyte[]をEncoding.UTF8.GetString(bytes)メソッドに渡すと、次の出力が得られます。
private Encoding _encoding = System.Text.Encoding.GetEncoding("UTF-8", new EncoderReplacementFallback("?"), new DecoderReplacementFallback("?"));
_encoding.GetString(bytes) "F1-V1�F1-V2�F1-V3" string
実際の値には「�」を付けないでください。これは、これらの特別なバイトをエンコードして「�」に置き換えることができなかったことを意味します。とにかく私はこれを回避することができますか、つまり文字列に変換し、特別なバイト表現を単一の文字に保持することができますか?
マーカーとして使用しようとしている次の特別なバイトがあります。
byte AM = (byte) 254
byte VM = (byte) 253
byte SM = (byte) 252
あなたの助けとコメントをいただければ幸いです。
ありがとう、
-
シーラズ