Unicode 文字を ANSI 文字に変換する必要があります
byte[] encode = Encoding.Convert(Encoding.Unicode, Encoding.Default, report);
このコードを使用します。これを表示しているときに、余分な ? キャラクターは最初の部分で追加されます
?FF EE 20 12
Unicode 文字を ANSI 文字に変換する必要があります
byte[] encode = Encoding.Convert(Encoding.Unicode, Encoding.Default, report);
このコードを使用します。これを表示しているときに、余分な ? キャラクターは最初の部分で追加されます
?FF EE 20 12
入力文字列と出力を投稿していただけると助かります。
Encoding.Convert() は「?」を出力します。ターゲットエンコーディングに対応する文字がないソース内の文字を変換しようとした場合。
出力の最初のシーケンスは、疑わしいほどバイト オーダー マーク (BOM) に近いように見えます。ANSI コードページにはこれらがないため、Unicode ストリームの先頭に BOM がある場合は、データをコンバーターに渡す前に BOM を取り除いてみてください。
この特定のケースでは、入力データに含まれてはならないものが含まれているようです ( Michael の回答を参照)。
一般に、エンコーディング間の変換を行う場合、クラスを使用して独自のエンコーディング フォールバック メカニズムを実装できますEncoderReplacementFallback
。サポートされていない文字については、簡単に空に戻すことができます。Encoding
変換時にフォールバックを使用する を指定するだけです。