DecoderFallback クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
出力文字に変換できないエンコードされた入力バイト シーケンスに対して、フォールバックと呼ばれるエラー処理メカニズムを提供します。
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) |