EncoderFallback 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
針對無法轉換為編碼輸出位元組序列的輸入字元,提供失敗處理機制 (稱為後援)。
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.GetChars 或 Encoding.GetString 方法來解碼為字元陣列或字串。
如果輸入字元無法由編碼表示,編碼作業可能會失敗。 例如, ASCIIEncoding 物件無法編碼 Unicode 字碼點值超出 U+0000 範圍到 U+007F 的字元。
無法執行編碼轉換時,.NET Framework會提供稱為後援的失敗處理機制。 您的應用程式可以使用預先定義的.NET Framework編碼器後援,也可以建立衍生自 和 EncoderFallbackBuffer 類別的 EncoderFallback 自訂編碼器後援。
EncoderFallback和 EncoderFallbackBuffer 是.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) |