DecoderFallback DecoderFallback DecoderFallback DecoderFallback Class

定義

エンコード済み入力バイト シーケンスを出力文字に変換できない場合のために、フォールバックと呼ばれるエラー処理機構を提供します。Provides a failure-handling mechanism, called a fallback, for an encoded input byte sequence that cannot be converted to an output character.

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

注釈

エンコーディングは、Unicode 文字をエンコードされたバイトシーケンスにマップします。An encoding maps a Unicode character to an encoded sequence of bytes. 特定のエンコーディングは、 Encodingクラスから派生した型によって表されます。A particular encoding is represented by a type that is derived from the Encoding class. 具体的には、文字はエンコーディングの型のEncoding.GetBytesメソッドを呼び出すことによってバイトシーケンスにエンコードされ、バイトシーケンスはメソッドEncoding.GetCharsまたはEncoding.GetStringメソッドを呼び出すことによって、文字配列または文字列にデコードされます。Specifically, a character is encoded to a byte sequence by calling the encoding type's Encoding.GetBytes method, and the byte sequence is decoded to a character array or a string by calling the Encoding.GetChars or Encoding.GetString method.

入力バイトシーケンスをエンコーディングによってマップできない場合、デコード操作は失敗する可能性があります。A decoding operation can fail if the input byte sequence cannot be mapped by the encoding. たとえば、オブジェクトはASCIIEncoding 、u + 0000 から u + 007f の範囲外のコードポイント値を持つ文字を表す場合、バイトシーケンスをデコードできません。For example, an ASCIIEncoding object cannot decode a byte sequence if that sequence represents a character that has a code point value that is outside the range U+0000 to U+007F.

デコード変換を実行できない場合、.NET Framework はフォールバックと呼ばれるエラー処理機構を提供します。When a decoding conversion cannot be performed, the .NET Framework provides a failure-handling mechanism called a fallback. アプリケーションでは、定義済みの .NET Framework デコーダーフォールバックを使用することも、クラスDecoderFallbackおよびDecoderFallbackBufferクラスから派生したカスタムデコーダーフォールバックを作成することもできます。Your application can use predefined .NET Framework decoder fallbacks, or it can create a custom decoder fallback derived from the DecoderFallback and DecoderFallbackBuffer classes.

DecoderFallbackDecoderFallbackBufferは、.NET Framework 内のすべてのフォールバックハンドラーをデコードするための基本クラスです。DecoderFallback and DecoderFallbackBuffer are the base classes for all decoding fallback handlers in the .NET Framework. 次の3種類のフォールバック処理機構がサポートされています。They support the following three kinds of fallback handling mechanisms:

  • 最適フォールバック。これにより、デコードできない有効な Unicode 文字が、ほぼ同等のものにマップされます。Best-fit fallback, which maps valid Unicode characters that cannot be decoded to an approximate equivalent. たとえば、 ASCIIEncodingクラスの最適フォールバックハンドラーは、Æ (u + 00c6) を AE (u + 0041 という + u + 0045) にマップする場合があります。For example, a best-fit fallback handler for the ASCIIEncoding class might map Æ (U+00C6) to AE (U+0041 + U+0045). 最適フォールバックハンドラーは、1つのアルファベット (キリル文字など) を翻字に実装することもできます (ラテンやローマなど)。A best-fit fallback handler might also be implemented to transliterate one alphabet (such as Cyrillic) to another (such as Latin or Roman). .NET Framework では、パブリックに最適なフォールバック実装は提供されません。The .NET Framework does not provide any public best-fit fallback implementations.

  • 置換フォールバック。事前に定義された文字列でデコードできない各文字を置き換えます。Replacement fallback, which replaces each character that cannot be decoded with a predefined string. .NET Framework には、定義済みの置換フォールバックハンドラーが用意されています。The .NET Framework provides a predefined replacement fallback handler. クラスDecoderReplacementFallbackは、デコードできない各バイトシーケンスを疑問符文字 ("?"、u + 003f)、または置換文字 (u + fffd) で置き換えます。The DecoderReplacementFallback class replaces each byte sequence that cannot be decoded with a question mark character ("?", or U+003F) or a REPLACEMENT CHARACTER (U+FFFD). 置換文字列をカスタマイズするには、コンストラクターのDecoderReplacementFallback.DecoderReplacementFallback(String)呼び出しで代替文字列を指定します。You can customize the replacement string by specifying a substitute in the call to the DecoderReplacementFallback.DecoderReplacementFallback(String) constructor. 代替文字列が生成された後は、デコード操作によって入力の残りの部分の変換が続行されます。After the substitute string is emitted, the decoding operation continues converting the remainder of the input.

  • 例外フォールバック。バイトシーケンスをデコードできない場合に例外をスローします。Exception fallback, which throws an exception when a byte sequence cannot be decoded. .NET Framework には、定義済みの例外フォールバックハンドラーが用意されています。The .NET Framework provides a predefined exception fallback handler. クラスDecoderExceptionFallbackは、無効DecoderFallbackExceptionなバイトシーケンスが検出され、デコード操作が終了したときにをスローします。The DecoderExceptionFallback class throws a DecoderFallbackException when an invalid byte sequence is encountered, and the decoding operation terminates.

カスタムソリューションを実装する場合は、 DecoderFallbackクラスの次の抽象メンバーをオーバーライドする必要があります。If you choose to implement a custom solution, you must override the following abstract members of the DecoderFallback class:

  • メソッド。からDecoderFallbackBuffer派生したクラスのインスタンスを返します。 CreateFallbackBufferThe CreateFallbackBuffer method, which returns a class instance derived from DecoderFallbackBuffer. 開発しているフォールバックハンドラーの種類に応じて、のDecoderFallbackBuffer実装は、マッピングや置換を実行したり、例外をスローしたりする役割を担います。Depending on the type of fallback handler that you are developing, the DecoderFallbackBuffer implementation is responsible for performing the mapping or replacement, or for throwing the exception.

  • MaxCharCountプロパティ。フォールバック実装が返すことができる最大文字数を返します。The MaxCharCount property, which returns the maximum number of characters that the fallback implementation can return. 例外フォールバックハンドラーの場合、その値は0にする必要があります。For an exception fallback handler, its value should be zero.

エンコード、デコード、フォールバック戦略の詳細については、「 .NET Framework の文字エンコード」を参照してください。For more information about encoding, decoding, and fallback strategies, see Character Encoding in the .NET Framework.

コンストラクター

DecoderFallback() DecoderFallback() DecoderFallback() DecoderFallback()

DecoderFallback クラスの新しいインスタンスを初期化します。Initializes a new instance of the DecoderFallback class.

プロパティ

ExceptionFallback ExceptionFallback ExceptionFallback ExceptionFallback

入力バイト シーケンスをデコードできないときに例外をスローするオブジェクトを取得します。Gets an object that throws an exception when an input byte sequence cannot be decoded.

MaxCharCount MaxCharCount MaxCharCount MaxCharCount

派生クラスでオーバーライドされた場合、現在の DecoderFallback オブジェクトが返すことができる最大文字数を取得します。When overridden in a derived class, gets the maximum number of characters the current DecoderFallback object can return.

ReplacementFallback ReplacementFallback ReplacementFallback ReplacementFallback

デコードできない入力バイト シーケンスの代わりに代替文字列を出力するオブジェクトを取得します。Gets an object that outputs a substitute string in place of an input byte sequence that cannot be decoded.

メソッド

CreateFallbackBuffer() CreateFallbackBuffer() CreateFallbackBuffer() CreateFallbackBuffer()

派生クラスでオーバーライドされた場合、DecoderFallbackBuffer クラスの新しいインスタンスを初期化します。When overridden in a derived class, initializes a new instance of the DecoderFallbackBuffer class.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

現在のオブジェクトを表す文字列を返します。Returns a string that represents the current object.

(Inherited from Object)

適用対象

こちらもご覧ください