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編碼器後援,也可以建立衍生自 和 EncoderFallbackBuffer 類別的 EncoderFallback 自訂編碼器後援。

EncoderFallbackEncoderFallbackBuffer 是.NET Framework中所有編碼後援處理常式的基類。 它們支援下列三種後援處理機制:

  • 最適合的後援,它會對應無法編碼為近似對等專案的有效 Unicode 字元。 例如,類別的最佳 ASCIIEncoding 後援處理常式可能會將 Æ (U+00C6) 對應至 AE (U+0041 + U+0045) 。 您也可以實作最適合的後援處理常式,以將一個字母 (,例如 Cyrillic) 轉譯到另一個 (,例如拉丁或羅馬) 。 .NET Framework不提供任何公用最適合的後援實作。

  • 取代後援,它會取代無法以預先定義字串編碼的每個字元。 .NET Framework提供預先定義的取代後援處理常式。 類別 EncoderReplacementFallback 會取代無法以問號字元 (「?」或 U+003F) 或 REPLACEMENT CHARACTER (U+FFFD) 解碼的每個位元組序列。 您可以在對建構函式的呼叫 EncoderReplacementFallback.EncoderReplacementFallback(String) 中指定替代專案,以自訂取代字串。 發出替代字串之後,編碼作業會繼續轉換輸入的其餘部分。

  • 例外狀況後援,會在無法編碼字元時擲回例外狀況。 .NET Framework提供預先定義的例外狀況後援處理常式。 當遇到無效字元時,類別 EncoderExceptionFallback 會擲回 EncoderFallbackException ,且編碼作業會終止。

如果您選擇實作自訂解決方案,則必須覆寫 類別的 EncoderFallback 下列抽象成員:

  • CreateFallbackBuffer方法,這個方法會傳回衍生自 EncoderFallbackBuffer 的類別實例。 根據您正在開發的後援處理常式類型而定,實 EncoderFallbackBuffer 作會負責執行對應或取代,或擲回例外狀況。

  • MaxCharCount屬性,傳回後援實作可以傳回的最大字元數。 如果是例外狀況後援處理常式,其值應該是零。

如需編碼、解碼和後援策略的詳細資訊,請參閱.NET Framework中的字元編碼

建構函式

EncoderFallback()

初始化 EncoderFallback 類別的新執行個體。

屬性

ExceptionFallback

取得物件,此物件會在無法編碼輸入字元時會擲回例外狀況。

MaxCharCount

在衍生類別中覆寫時,取得目前的 EncoderFallback 物件可以傳回的最大字元數。

ReplacementFallback

取得物件,此物件會產出替代字串,以取代無法編碼的輸入字元。

方法

CreateFallbackBuffer()

在衍生類別中覆寫時,初始化 EncoderFallbackBuffer 類別的新執行個體。

Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetType()

取得目前執行個體的 Type

(繼承來源 Object)
MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
ToString()

傳回代表目前物件的字串。

(繼承來源 Object)

適用於

另請參閱