Udostępnij za pośrednictwem


EncoderFallback Klasa

Definicja

Zapewnia mechanizm obsługi błędów nazywany rezerwą dla znaku wejściowego, którego nie można przekonwertować na zakodowaną sekwencję bajtów wyjściowych.

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
Dziedziczenie
EncoderFallback
Pochodne
Atrybuty

Uwagi

Kodowanie mapuje znak Unicode na zakodowaną sekwencję bajtów. Określone kodowanie jest reprezentowane przez typ, który pochodzi z Encoding klasy. W szczególności znak jest zakodowany w sekwencji bajtów przez wywołanie metody typu Encoding.GetBytes kodowania, a sekwencja bajtów jest dekodowana do tablicy znaków lub ciągu przez wywołanie Encoding.GetChars metody or Encoding.GetString .

Operacja kodowania może zakończyć się niepowodzeniem, jeśli znak wejściowy nie może być reprezentowany przez kodowanie. Na przykład ASCIIEncoding obiekt nie może kodować znaku, którego wartość punktu kodu Unicode znajduje się poza zakresem U+0000 do U+007F.

Gdy nie można wykonać konwersji kodowania, .NET Framework zapewnia mechanizm obsługi błędów nazywany rezerwą. Aplikacja może używać wstępnie zdefiniowanych rezerwowych koderów .NET Framework lub utworzyć rezerwowy koder niestandardowy pochodzący z EncoderFallback klas iEncoderFallbackBuffer.

EncoderFallbacki EncoderFallbackBuffer są klasami podstawowymi dla wszystkich procedur obsługi rezerwowych kodowania w .NET Framework. Obsługują one następujące trzy rodzaje mechanizmów obsługi rezerwowej:

  • Najlepsze dopasowanie rezerwowe, które mapuje prawidłowe znaki Unicode, których nie można zakodowane w przybliżonym odpowiedniku. Na przykład najlepiej dopasowany program obsługi rezerwowej dla ASCIIEncoding klasy może mapować Æ (U+00C6) na AE (U+0041 + U+0045). Najlepiej dopasowany program obsługi rezerwowej może być również zaimplementowany w celu transliterowania jednego alfabetu (takiego jak cyrylica) do innego (takiego jak łaciński lub rzymski). .NET Framework nie zapewnia żadnych publicznych najlepiej dopasowanych implementacji rezerwowych.

  • Rezerwowa zamiana, która zastępuje każdy znak, którego nie można zakodować przy użyciu wstępnie zdefiniowanego ciągu. .NET Framework udostępnia wstępnie zdefiniowany program obsługi rezerwowej zamiany. Klasa EncoderReplacementFallback zastępuje każdą sekwencję bajtów, której nie można dekodować znakiem znaku zapytania ("?", lub U+003F) lub znakiem ZASTĘPCZYm (U+FFFD). Możesz dostosować ciąg zastępczy, określając substytut w wywołaniu konstruktora EncoderReplacementFallback.EncoderReplacementFallback(String) . Po emisji ciągu zastępczego operacja kodowania kontynuuje konwertowanie reszty danych wejściowych.

  • Powrót wyjątku, który zgłasza wyjątek, gdy znak nie może być zakodowany. .NET Framework udostępnia wstępnie zdefiniowaną procedurę obsługi rezerwowej wyjątków. Klasa EncoderExceptionFallback zgłasza EncoderFallbackException błąd, gdy napotkano nieprawidłowy znak, a operacja kodowania kończy się.

Jeśli zdecydujesz się zaimplementować rozwiązanie niestandardowe, musisz zastąpić następujące abstrakcyjne elementy członkowskie EncoderFallback klasy:

  • Metoda CreateFallbackBuffer , która zwraca wystąpienie klasy pochodzące z EncoderFallbackBufferklasy . W zależności od typu programu obsługi rezerwowej, którą tworzysz, EncoderFallbackBuffer implementacja jest odpowiedzialna za wykonywanie mapowania lub zamiany albo zgłaszanie wyjątku.

  • Właściwość MaxCharCount , która zwraca maksymalną liczbę znaków, którą może zwrócić implementacja rezerwowa. W przypadku procedury obsługi rezerwowej wyjątku jego wartość powinna być równa zero.

Aby uzyskać więcej informacji na temat kodowania, dekodowania i strategii rezerwowych, zobacz Kodowanie znaków w .NET Framework.

Konstruktory

EncoderFallback()

Inicjuje nowe wystąpienie klasy EncoderFallback.

Właściwości

ExceptionFallback

Pobiera obiekt, który zgłasza wyjątek, gdy nie można zakodowany znak wejściowy.

MaxCharCount

Po przesłonięciu w klasie pochodnej maksymalna liczba znaków, które może zwrócić bieżący EncoderFallback obiekt.

ReplacementFallback

Pobiera obiekt, który generuje ciąg zastępczy zamiast znaku wejściowego, którego nie można kodować.

Metody

CreateFallbackBuffer()

Po przesłonięciu w klasie pochodnej inicjuje nowe wystąpienie EncoderFallbackBuffer klasy.

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Dotyczy

Zobacz też