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 方法來解碼為字元陣列或字串。
如果輸入位元組序列無法透過編碼對應,解碼作業可能會失敗。 例如, ASCIIEncoding 如果該序列代表代碼點值超出 U+0000 到 U+007F 範圍的字元,物件就無法解碼位元組序列。
無法執行解碼轉換時,.NET Framework會提供稱為後援的失敗處理機制。 您的應用程式可以使用預先定義的.NET Framework解碼器後援,也可以建立衍生自 和 DecoderFallbackBuffer 類別的 DecoderFallback 自訂解碼器後援。
DecoderFallback和 DecoderFallbackBuffer 是.NET Framework中所有解碼後援處理常式的基類。 它們支援下列三種後援處理機制:
最適合的後援,它會對應無法解碼為近似對等專案的有效 Unicode 字元。 例如,類別的最佳 ASCIIEncoding 後援處理常式可能會將 Æ (U+00C6) 對應至 AE (U+0041 + U+0045) 。 您也可以實作最適合的後援處理常式,以將一個字母 (,例如 Cyrillic) 轉譯到另一個 (,例如拉丁或羅馬) 。 .NET Framework不提供任何公用最適合的後援實作。
取代後援,它會取代無法以預先定義的字串解碼的每個字元。 .NET Framework提供預先定義的取代後援處理常式。 類別 DecoderReplacementFallback 會取代無法以問號字元 (「?」或 U+003F) 或 REPLACEMENT CHARACTER (U+FFFD) 解碼的每個位元組序列。 您可以在對建構函式的呼叫 DecoderReplacementFallback.DecoderReplacementFallback(String) 中指定替代專案,以自訂取代字串。 發出替代字串之後,解碼作業會繼續轉換輸入的其餘部分。
例外狀況後援,當位元組序列無法解碼時,會擲回例外狀況。 .NET Framework提供預先定義的例外狀況後援處理常式。 當遇到不正確位元組序列,且解碼作業終止時,類別 DecoderExceptionFallback 會擲 DecoderFallbackException 回 。
如果您選擇實作自訂解決方案,則必須覆寫 類別的 DecoderFallback 下列抽象成員:
CreateFallbackBuffer方法,這個方法會傳回衍生自 DecoderFallbackBuffer 的類別實例。 根據您正在開發的後援處理常式類型而定,實 DecoderFallbackBuffer 作會負責執行對應或取代,或擲回例外狀況。
MaxCharCount屬性,傳回後援實作可以傳回的最大字元數。 如果是例外狀況後援處理常式,其值應該是零。
如需編碼、解碼和後援策略的詳細資訊,請參閱.NET Framework中的字元編碼。
建構函式
DecoderFallback() |
初始化 DecoderFallback 類別的新執行個體。 |
屬性
ExceptionFallback |
取得物件,此物件會在無法對輸入位元組序列解碼時,擲回例外狀況。 |
MaxCharCount |
在衍生類別中覆寫時,取得目前的 DecoderFallback 物件可以傳回的最大字元數。 |
ReplacementFallback |
取得物件,此物件會產出替代字串,以取代無法解碼的輸入位元組序列。 |
方法
CreateFallbackBuffer() |
在衍生類別中覆寫時,初始化 DecoderFallbackBuffer 類別的新執行個體。 |
Equals(Object) |
判斷指定的物件是否等於目前的物件。 (繼承來源 Object) |
GetHashCode() |
做為預設雜湊函式。 (繼承來源 Object) |
GetType() |
取得目前執行個體的 Type。 (繼承來源 Object) |
MemberwiseClone() |
建立目前 Object 的淺層複製。 (繼承來源 Object) |
ToString() |
傳回代表目前物件的字串。 (繼承來源 Object) |