次の方法で共有


EncoderFallback クラス

定義

入力文字をエンコード済み出力バイト シーケンスに変換できない場合のために、フォールバックと呼ばれるエラー処理機構を提供します。

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

注釈

エンコードは、Unicode 文字をエンコードされたバイト シーケンスにマップします。 特定のエンコードは、クラスから Encoding 派生した型によって表されます。 具体的には、エンコード型Encoding.GetBytesのメソッドを呼び出して文字をバイト シーケンスにエンコードし、バイト シーケンスを文字配列または文字列にデコードするには、そのメソッドをEncoding.GetCharsEncoding.GetString呼び出します。

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

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

EncoderFallbackEncoderFallbackBuffer、.NET Framework内のすべてのエンコード フォールバック ハンドラーの基本クラスです。 これらは、次の 3 種類のフォールバック処理メカニズムをサポートします。

  • 最適なフォールバック。エンコードできない有効な Unicode 文字をおおよその等価文字にマップします。 たとえば、クラスの最適なフォールバック ハンドラー ASCIIEncoding は、Æ (U+00C6) を AE (U+0041 + U+0045) にマップできます。 また、最適なフォールバック ハンドラーを実装して、1 つのアルファベット (キリル文字など) を別のアルファベット (ラテン文字やローマ文字など) に表記変換することもできます。 .NET Frameworkでは、パブリックに最適なフォールバック実装は提供されません。

  • 置換フォールバック。エンコードできない各文字を定義済みの文字列に置き換えます。 .NET Frameworkには、定義済みの代替フォールバック ハンドラーが用意されています。 このクラスは EncoderReplacementFallback 、デコードできない各バイト シーケンスを疑問符文字 ("?"、U+003F) または REPLACEMENT CHARACTER (U+FFFD) で置き換えます。 コンストラクターの呼び出しで置換文字列を指定することで、置換文字列を EncoderReplacementFallback.EncoderReplacementFallback(String) カスタマイズできます。 置換文字列が出力された後、エンコード操作は入力の残りの部分を変換し続けます。

  • 例外フォールバック。これは、文字をエンコードできない場合に例外をスローします。 .NET Frameworkには、定義済みの例外フォールバック ハンドラーが用意されています。 クラスは EncoderExceptionFallback 、無効な文字が見つかったときに an をスロー EncoderFallbackException し、エンコード操作を終了します。

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

  • このメソッドは CreateFallbackBuffer 、派生 EncoderFallbackBuffer元のクラス インスタンスを返します。 開発中のフォールバック ハンドラーの種類に応じて、 EncoderFallbackBuffer 実装はマッピングまたは置換を実行するか、例外をスローします。

  • MaxCharCountフォールバック実装が返すことができる最大文字数を返すプロパティ。 例外フォールバック ハンドラーの場合、その値は 0 である必要があります。

エンコード、デコード、フォールバックの方法の詳細については、.NET Frameworkの「文字エンコード」を参照してください。

コンストラクター

EncoderFallback()

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

プロパティ

ExceptionFallback

入力文字をエンコードできない場合に例外をスローするオブジェクトを取得します。

MaxCharCount

派生クラスでオーバーライドされた場合、現在の EncoderFallback オブジェクトが返すことができる最大文字数を取得します。

ReplacementFallback

エンコードできない入力文字の代わりに代替文字列を出力するオブジェクトを取得します。

メソッド

CreateFallbackBuffer()

派生クラスでオーバーライドされた場合、EncoderFallbackBuffer クラスの新しいインスタンスを初期化します。

Equals(Object)

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

(継承元 Object)
GetHashCode()

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

(継承元 Object)
GetType()

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

(継承元 Object)
MemberwiseClone()

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

(継承元 Object)
ToString()

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

(継承元 Object)

適用対象

こちらもご覧ください