次の方法で共有


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.GetChars または Encoding.GetString メソッドを呼び出すことによって文字配列または文字列にデコードされます。

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

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

DecoderFallback および DecoderFallbackBuffer は、.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 クラスは DecoderFallbackException をスローします。

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

  • DecoderFallbackBufferから派生したクラス インスタンスを返すCreateFallbackBuffer メソッド。 開発中のフォールバック ハンドラーの種類に応じて、 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)

適用対象

こちらもご覧ください