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無効なバイト シーケンスが検出され、デコード操作が終了すると、 クラスは をスロー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)

適用対象

こちらもご覧ください