Sdílet prostřednictvím


EncoderFallback Třída

Definice

Poskytuje mechanismus zpracování selhání, označovaný jako záložní, pro vstupní znak, který nelze převést na zakódovanou posloupnost bajtů výstupu.

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
Dědičnost
EncoderFallback
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 kódování může selhat, pokud vstupní znak nemůže být reprezentován kódováním. Například objekt nemůže kódovat znak, ASCIIEncoding jehož hodnota bodu kódu Unicode je mimo rozsah U+0000 až U+007F.

Pokud převod kódování nelze provést, rozhraní .NET Framework poskytuje mechanismus zpracování selhání, který se nazývá náhradní. Vaše aplikace může používat předdefinované záložní kódy kodéru .NET Framework nebo může vytvořit vlastní kodér, který je odvozený z těchto EncoderFallback tříd.EncoderFallbackBuffer

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

  • Nejvhodnější náhradní řešení, které mapuje platné znaky Unicode, které nelze zakó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í objekt, který nahrazuje každý znak, který nelze zakódovat předdefinovaným řetězcem. Rozhraní .NET Framework poskytuje předdefinovanou náhradní obslužnou rutinu pro náhradní použití. Třída EncoderReplacementFallback 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 EncoderReplacementFallback.EncoderReplacementFallback(String) . Po vygenerování náhradního řetězce operace kódování pokračuje v převodu zbytku vstupu.

  • Náhradní výjimka, která vyvolá výjimku v případě, že znak nelze zakódovat. Rozhraní .NET Framework poskytuje předdefinovanou obslužnou rutinu náhradní výjimky. Třída EncoderExceptionFallback vyvolá, EncoderFallbackException když je zjištěn neplatný znak a operace kódování se ukončí.

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

  • Metoda CreateFallbackBuffer , která vrací instanci třídy odvozené z EncoderFallbackBuffer. V závislosti na typu náhradní obslužné rutiny, kterou vyvíjíte, EncoderFallbackBuffer 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
EncoderFallback()

Inicializuje novou instanci EncoderFallback třídy.

Vlastnosti

Name Description
ExceptionFallback

Získá objekt, který vyvolá výjimku, když vstupní znak nelze zakódovat.

MaxCharCount

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

ReplacementFallback

Získá objekt, který vypíše náhradní řetězec místo vstupního znaku, který nelze zakódovat.

Metody

Name Description
CreateFallbackBuffer()

Při přepsání v odvozené třídě inicializuje novou instanci EncoderFallbackBuffer 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é