Sdílet prostřednictvím


EncoderFallback Třída

Definice

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

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 posloupnost bajtů. Konkrétní kódování je reprezentováno typem, který je odvozen 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 na znakové pole nebo řetězec voláním Encoding.GetChars nebo Encoding.GetString metodou.

Operace kódování může selhat, pokud kódování nemůže reprezentovat vstupní znak. Například objekt nemůže zakó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, .NET Framework poskytuje mechanismus zpracování selhání, který se nazývá záložní. Vaše aplikace může používat předdefinované náhradní .NET Framework kodér nebo může vytvořit náhradní kodér odvozený z tříd EncoderFallback a EncoderFallbackBuffer tříd.

EncoderFallbacka EncoderFallbackBuffer jsou základní třídy pro všechny obslužné rutiny pro záložní kódování v .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 je možné implementovat také pro transkripci jedné abecedy (například cyrilice) na jinou (například latinku nebo římskou). .NET Framework neposkytuje žádné veřejné nejvhodnější náhradní implementace.

  • Náhradní náhradní, který nahrazuje každý znak, který nelze zakódovat předdefinovaným řetězcem. .NET Framework poskytuje předdefinovanou náhradní náhradní obslužnou rutinu. Třída EncoderReplacementFallback nahrazuje každou posloupnost bajtů, která nemůže být dekódována znakem otazníku ("?", nebo U+003F) nebo NÁHRADNÍ ZNAK (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 bude operace kódování pokračovat v převodu zbytku vstupu.

  • Náhradní výjimka, která vyvolá výjimku v případě, že znak nelze zakódovat. .NET Framework poskytuje předdefinovanou obslužnou rutinu náhradní výjimky. Třída EncoderExceptionFallback vyvolá, EncoderFallbackException když dojde k neplatnému znaku 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 vyvolání výjimky.

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

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

Konstruktory

EncoderFallback()

Inicializuje novou instanci EncoderFallback třídy.

Vlastnosti

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é aktuální EncoderFallback objekt může vrátit.

ReplacementFallback

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

Metody

CreateFallbackBuffer()

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

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

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

Slouží jako výchozí funkce hash.

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

Type Získá aktuální instanci.

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

Vytvoří použádnou kopii aktuálního souboru 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é