EncoderFallbackBuffer クラス

定義

入力文字をエンコードできない場合に、フォールバック ハンドラーがエンコーダーに代替文字列を返すことを可能にするためのバッファーを提供します。

public ref class EncoderFallbackBuffer abstract
public abstract class EncoderFallbackBuffer
type EncoderFallbackBuffer = class
Public MustInherit Class EncoderFallbackBuffer
継承
EncoderFallbackBuffer
派生

注釈

エンコードは、Unicode 文字とエンコードされたバイト シーケンスの間のマッピングを定義します。 特定の文字にマッピングが定義されていない場合、入力文字を出力バイト シーケンスに変換するエンコード操作は失敗します。

.NET Frameworkは、変換を実行できない場合にフォールバックと呼ばれるエラー処理メカニズムを提供します。 すべてのエンコーダー フォールバック ハンドラーは、次を実装する必要があります。

  • エンコーダー フォールバック。これは、 クラスから EncoderFallback 派生したクラスによって表されます。

  • 変換操作に文字列を返すことができる クラスから EncoderFallbackBuffer 派生した型で表されるエンコーダー フォールバック バッファー。

フォールバックでは、次の 3 つの方法を使用して変換エラーを処理できます。

  • 最適なマッピング。 エンコーダー フォールバック バッファーは、入力文字に近い近似値を表す文字列を返すことができます。 .NET Frameworkでは、パブリックに最適EncoderFallbackBufferな実装は提供されません。

  • 置換します。 エンコーダー フォールバック バッファーは、文字をエンコードできなかったことを示す疑問符 ("?") などの文字列を返すことができます。 .NET Frameworkでは、 クラスと EncoderReplacementFallbackBuffer クラスはEncoderReplacementFallbackパブリック置換フォールバック バッファー実装を提供します。 クラスのコンストラクターを EncoderReplacementFallback 使用すると、置換文字列を定義できます。

  • 例外。 この実装では EncoderFallbackBuffer 、文字をエンコードできないことを示す例外がスローされ、エンコード操作が終了します。 この場合、フォールバック ハンドラーは、エンコーダーに文字列を EncoderFallbackBuffer 返しませんが、実装を提供する必要があります。 .NET Frameworkでは、 EncoderExceptionFallback クラスと EncoderExceptionFallbackBuffer クラスは、文字をエンコードできないときに をEncoderFallbackExceptionスローするパブリック例外フォールバック実装を提供します。

実装内の EncoderFallbackBuffer バッファーは、エンコーダー フォールバックに応答してエンコーダーに返される文字列全体を表します。 一般に、実装には、エンコーダーに返される次の文字のインデックスや、返される残りの文字の数など、状態情報も含まれます。 は抽象クラスであるため EncoderFallbackBuffer 、少なくとも次のメンバーを実装するには派生クラスが必要です。

  • オーバーロードされた Fallback メソッド。エンコーダーが文字をエンコードできない場合に呼び出されます。 エンコーダーは、2 つの情報をフォールバック バッファー実装に渡します。エンコードできなかった文字またはサロゲート ペアと、入力内の文字のインデックス。 エンコーダー フォールバック例外ハンドラーでは、このメソッドで例外がスローされます。 それ以外の場合、フォールバックが提供される場合、またはfalse提供されない場合、メソッドは を返trueします。

  • メソッド。 GetNextChar メソッドが を返す場合 Fallback 、エンコーダーによって繰り返し呼び出されます true。 連続する呼び出しでは、ハンドラーはバッファー内の各文字を返す必要があります。 すべての文字を返した場合は、U+0000 を返す必要があります。 例外ハンドラーは常に U+0000 を返します。

  • MovePreviousバッファー内の前の位置へのポインターの移動を試み、移動が成功したかどうかを示す メソッド。 例外ハンドラーは常に を返します false

  • プロパティ。 Remaining エンコーダーに返される残りの文字数を示します。 例外フォールバック ハンドラーは常に 0 を返します。

コンストラクター

EncoderFallbackBuffer()

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

プロパティ

Remaining

派生クラスでオーバーライドされた場合、現在の EncoderFallbackBuffer オブジェクト内に処理されずに残っている文字数を取得します。

メソッド

Equals(Object)

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

(継承元 Object)
Fallback(Char, Char, Int32)

派生クラスでオーバーライドされた場合、指定したサロゲート ペアを処理するためのフォールバック バッファーを確保します。

Fallback(Char, Int32)

派生クラスでオーバーライドされた場合、指定した入力文字を処理するためのフォールバック バッファーを確保します。

GetHashCode()

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

(継承元 Object)
GetNextChar()

派生クラスでオーバーライドされた場合、フォールバック バッファーの次の文字を取得します。

GetType()

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

(継承元 Object)
MemberwiseClone()

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

(継承元 Object)
MovePrevious()

派生クラスでオーバーライドされた場合、GetNextChar() メソッドに対する次の呼び出しで、データ バッファーにおける現在の文字位置の前の文字位置に移動します。

Reset()

このフォールバック バッファーに関連するすべてのデータおよびステータス情報を初期化します。

ToString()

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

(継承元 Object)

適用対象

こちらもご覧ください