DecoderFallback クラス

定義

エンコード済み入力バイト シーケンスを出力文字に変換できない場合のために、フォールバックと呼ばれるエラー処理機構を提供します。

public ref class DecoderFallback abstract
public abstract class DecoderFallback
[System.Serializable]
public abstract class DecoderFallback
type DecoderFallback = class
[<System.Serializable>]
type DecoderFallback = class
Public MustInherit Class DecoderFallback
継承
DecoderFallback
派生
属性

注釈

エンコードは、Unicode 文字をエンコードされたバイト シーケンスにマップします。 特定のエンコードは、クラスから Encoding 派生した型によって表されます。 具体的には、エンコード型Encoding.GetBytesのメソッドを呼び出して文字をバイト シーケンスにエンコードし、バイト シーケンスを文字配列または文字列にデコードするには、そのメソッドをEncoding.GetCharsEncoding.GetString呼び出します。

エンコードによって入力バイト シーケンスをマップできない場合、デコード操作が失敗する可能性があります。 たとえば、 ASCIIEncoding そのシーケンスが U+0000 から U+007F の範囲外のコード ポイント値を持つ文字を表す場合、オブジェクトはバイト シーケンスをデコードできません。

デコード変換を実行できない場合、.NET Frameworkはフォールバックと呼ばれるエラー処理メカニズムを提供します。 アプリケーションでは、定義済みの.NET Framework デコーダー フォールバックを使用することも、クラスからDecoderFallbackBuffer派生したカスタム デコーダー フォールバックをDecoderFallback作成することもできます。

DecoderFallbackDecoderFallbackBuffer、.NET Framework内のすべてのデコード フォールバック ハンドラーの基本クラスです。 これらは、次の 3 種類のフォールバック処理メカニズムをサポートします。

  • 最適なフォールバック。デコードできない有効な Unicode 文字をおおよその等価文字にマップします。 たとえば、クラスの最適なフォールバック ハンドラー ASCIIEncoding は、Æ (U+00C6) を AE (U+0041 + U+0045) にマップできます。 また、最適なフォールバック ハンドラーを実装して、1 つのアルファベット (キリル文字など) を別のアルファベット (ラテン文字やローマ文字など) に表記変換することもできます。 .NET Frameworkでは、パブリックに最適なフォールバック実装は提供されません。

  • 置換フォールバック。デコードできない各文字を定義済みの文字列に置き換えます。 .NET Frameworkには、定義済みの代替フォールバック ハンドラーが用意されています。 このクラスは DecoderReplacementFallback 、デコードできない各バイト シーケンスを疑問符文字 ("?"、U+003F) または REPLACEMENT CHARACTER (U+FFFD) で置き換えます。 コンストラクターの呼び出しで置換文字列を指定することで、置換文字列を DecoderReplacementFallback.DecoderReplacementFallback(String) カスタマイズできます。 置換文字列が出力された後、デコード操作は入力の残りの部分を変換し続けます。

  • 例外フォールバック。バイト シーケンスをデコードできない場合に例外がスローされます。 .NET Frameworkには、定義済みの例外フォールバック ハンドラーが用意されています。 クラスは DecoderExceptionFallback 、無効なバイト シーケンスが見つかったときに a DecoderFallbackException をスローし、デコード操作が終了します。

カスタム ソリューションを実装する場合は、クラスの次の抽象メンバーをオーバーライドする DecoderFallback 必要があります。

  • このメソッドは CreateFallbackBuffer 、派生 DecoderFallbackBuffer元のクラス インスタンスを返します。 開発中のフォールバック ハンドラーの種類に応じて、 DecoderFallbackBuffer 実装はマッピングまたは置換を実行するか、例外をスローします。

  • MaxCharCountフォールバック実装が返すことができる最大文字数を返すプロパティ。 例外フォールバック ハンドラーの場合、その値は 0 である必要があります。

エンコード、デコード、フォールバックの方法の詳細については、.NET Frameworkの「文字エンコード」を参照してください。

コンストラクター

DecoderFallback()

DecoderFallback クラスの新しいインスタンスを初期化します。

プロパティ

ExceptionFallback

入力バイト シーケンスをデコードできないときに例外をスローするオブジェクトを取得します。

MaxCharCount

派生クラスでオーバーライドされた場合、現在の DecoderFallback オブジェクトが返すことができる最大文字数を取得します。

ReplacementFallback

デコードできない入力バイト シーケンスの代わりに代替文字列を出力するオブジェクトを取得します。

メソッド

CreateFallbackBuffer()

派生クラスでオーバーライドされた場合、DecoderFallbackBuffer クラスの新しいインスタンスを初期化します。

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)

適用対象

こちらもご覧ください