Sdílet prostřednictvím


DecoderFallback Třída

Definice

Poskytuje mechanismus zpracování selhání, označovaný jako záložní, pro zakódovanou vstupní bajtovou sekvenci, která se nedá převést na výstupní znak.

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
Dědičnost
DecoderFallback
Odvozené
Atributy

Poznámky

Kódování mapuje znak Unicode na zakódovanou sekvenci bajtů. Konkrétní kódování je reprezentováno typem odvozeným z Encoding třídy. Konkrétně je znak kódován do bajtové sekvence voláním metody typu Encoding.GetBytes kódování a sekvence bajtů je dekódována do pole znaků nebo řetězce voláním Encoding.GetChars nebo Encoding.GetString metody.

Operace dekódování může selhat, pokud vstupní bajtovou sekvenci nelze namapovat kódováním. Například objekt nemůže dekódovat posloupnost bajtů, ASCIIEncoding pokud tato sekvence představuje znak, který má hodnotu bodu kódu, která je mimo rozsah U+0000 až U+007F.

Pokud převod dekódování nelze provést, rozhraní .NET Framework poskytuje mechanismus zpracování selhání označovaný jako záložní. Vaše aplikace může používat předdefinované náhradní dekodéry rozhraní .NET Framework nebo může vytvořit vlastní dekodér odvozený z těchto DecoderFallback tříd DecoderFallbackBuffer .

DecoderFallback a DecoderFallbackBuffer jsou základní třídy pro všechny dekódované náhradní obslužné rutiny v rozhraní .NET Framework. Podporují následující tři druhy náhradních mechanismů zpracování:

  • Nejvhodnější náhradní objekt, který mapuje platné znaky Unicode, které nelze dekódovat na přibližný ekvivalent. Například nejvhodnější náhradní obslužná rutina třídy ASCIIEncoding může mapovat Æ (U+00C6) na AE (U+0041 + U+0045). Nejvhodnější náhradní obslužnou rutinu lze také implementovat pro transkripci jedné abecedy (například cyrilice) na jinou (například latinku nebo římskou). Rozhraní .NET Framework neposkytuje žádné veřejné nejvhodnější záložní implementace.

  • Náhradní náhradní znak, který nahrazuje každý znak, který nelze dekódovat předdefinovaným řetězcem. Rozhraní .NET Framework poskytuje předdefinovanou náhradní obslužnou rutinu pro náhradní použití. Třída DecoderReplacementFallback nahrazuje každou posloupnost bajtů, která se nedá dekódovat znakem otazníku ("?", nebo U+003F) nebo náhradním znakem (U+FFFD). Náhradní řetězec můžete přizpůsobit zadáním náhrady ve volání konstruktoru DecoderReplacementFallback.DecoderReplacementFallback(String) . Po vygenerování náhradního řetězce operace dekódování pokračuje v převodu zbytku vstupu.

  • Náhradní výjimka, která vyvolá výjimku, když se sekvence bajtů nedá dekódovat. Rozhraní .NET Framework poskytuje předdefinovanou obslužnou rutinu náhradní výjimky. Třída DecoderExceptionFallback vyvolá DecoderFallbackException , když je zjištěna neplatná sekvence bajtů a dekódovací operace se ukončí.

Pokud se rozhodnete implementovat vlastní řešení, musíte přepsat následující abstraktní členy DecoderFallback třídy:

  • Metoda CreateFallbackBuffer , která vrací instanci třídy odvozené z DecoderFallbackBuffer. V závislosti na typu náhradní obslužné rutiny, kterou vyvíjíte, DecoderFallbackBuffer je implementace zodpovědná za provádění mapování nebo nahrazení nebo za vyvolání výjimky.

  • Vlastnost MaxCharCount , která vrátí maximální počet znaků, které může vrátit náhradní implementace. U náhradní obslužné rutiny výjimky by její hodnota měla být nula.

Další informace o kódování, dekódování a záložních strategiích naleznete v tématu Kódování znaků v rozhraní .NET Framework.

Konstruktory

Name Description
DecoderFallback()

Inicializuje novou instanci DecoderFallback třídy.

Vlastnosti

Name Description
ExceptionFallback

Získá objekt, který vyvolá výjimku, když vstupní bajt sekvence nelze dekódovat.

MaxCharCount

Při přepsání v odvozené třídě získá maximální počet znaků, které může aktuální DecoderFallback objekt vrátit.

ReplacementFallback

Získá objekt, který vypíše náhradní řetězec místo vstupní bajtové sekvence, která nelze dekódovat.

Metody

Name Description
CreateFallbackBuffer()

Při přepsání v odvozené třídě inicializuje novou instanci DecoderFallbackBuffer třídy.

Equals(Object)

Určuje, zda je zadaný objekt roven aktuálnímu objektu.

(Zděděno od Object)
GetHashCode()

Slouží jako výchozí funkce hash.

(Zděděno od Object)
GetType()

Získá Type aktuální instance.

(Zděděno od Object)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Object.

(Zděděno od Object)
ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Platí pro

Viz také