.net ASCIIEncodingクラスを使用してバイト配列を文字列にデコードする場合、バイト順序マークを検出して削除するコードを記述する必要がありますか、それともバイト順序マークを文字列にデコードしないようにASCIIEncodingに指示することはできますか?
これを行うときの私の問題は次のとおりです。
string someString = System.Text.ASCIIEncoding.Default.GetString(someByteArray)
someStringは次のようになります。
<?xml version="1.0"?>.......
それから私がこれを呼ぶとき:
XElement.Parse(someString)
最初の3バイトが原因で例外がスローされます。EFBBBF-UTF8バイト順マーク。したがって、デフォルトではなくUTF8エンコーディングを指定すると、次のようになります。
System.Text.ASCIIEncoding.UTF8.GetString(someByteArray)
ASCIIEncodingは、バイト順序マークを文字列にデコードしようとはしませんでした。返された文字列をnotepad++にコピーすると、?が表示されます。XMLタグの前の文字。そのため、バイト順マークは単一のガベージ文字にデコードされています。この場合、バイト順マークのデコードを停止する最良の方法は何ですか?