EncoderFallback Класс

Определение

Предоставляет механизм обработки ошибок, называемый резервным вариантом, для входного символа, который не может быть преобразован в выходную последовательность закодированных байтов.

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
Наследование
EncoderFallback
Производный
Атрибуты

Комментарии

Кодировка сопоставляет символ Юникода с закодированной последовательностью байтов. Определенная кодировка представлена типом, производным от Encoding класса. В частности, символ кодируется в последовательность байтов путем вызова метода кодирования Encoding.GetBytes , а последовательность байтов декодируется в массив символов или строку путем вызова Encoding.GetChars метода или Encoding.GetString метода.

Операция кодирования может завершиться ошибкой, если входной символ не может быть представлен кодировкой. Например, ASCIIEncoding объект не может закодировать символ, значение кодовой точки Юникода которого находится за пределами диапазона U+0000 до U+007F.

Если преобразование кодировки невозможно выполнить, платформа .NET Framework предоставляет механизм обработки сбоев, называемый резервным вариантом. Приложение может использовать предопределенные резервные платформа .NET Framework кодировщика или создать резервный вариант пользовательского EncoderFallback кодировщика, производный от классов и EncoderFallbackBuffer классов.

EncoderFallbackи EncoderFallbackBuffer являются базовыми классами для всех резервных обработчиков кодирования в платформа .NET Framework. Они поддерживают следующие три типа резервных механизмов обработки:

  • Резервный вариант наилучшего соответствия, который сопоставляет допустимые символы Юникода, которые не могут быть закодированы с приблизительным эквивалентом. Например, оптимальный резервный обработчик для ASCIIEncoding класса может сопоставить Æ (U+00C6) с AE (U+0041 + U+0045). Кроме того, резервный обработчик лучшего соответствия может быть реализован для транслитерации одного алфавита (например, кириллицы) к другому (например, латиница или роман). Платформа .NET Framework не предоставляет никаких общедоступных резервных реализаций, подходящих для лучшего соответствия.

  • Резервная замена, которая заменяет каждый символ, который не может быть закодирован с помощью предопределенной строки. Платформа .NET Framework предоставляет предопределенный резервный обработчик замены. Класс EncoderReplacementFallback заменяет каждую последовательность байтов, которая не может быть декодирована символом вопросительного знака ("?", U+003F) или символом ЗАМЕНЫ (U+FFFD). Вы можете настроить строку замены, указав в вызове конструктора EncoderReplacementFallback.EncoderReplacementFallback(String) подстановку. После отправки замещающей строки операция кодирования продолжает преобразовывать оставшуюся часть входных данных.

  • Резервная ошибка исключения, которая создает исключение, если символ не может быть закодирован. Платформа .NET Framework предоставляет предопределенный резервный обработчик исключений. Класс EncoderExceptionFallback создает исключение EncoderFallbackException при обнаружении недопустимого символа, и операция кодирования завершается.

Если вы решили реализовать пользовательское решение, необходимо переопределить следующие абстрактные члены EncoderFallback класса:

  • Метод CreateFallbackBuffer , который возвращает экземпляр класса, производный от EncoderFallbackBuffer. В зависимости от типа разрабатываемого EncoderFallbackBuffer резервного обработчика реализация отвечает за выполнение сопоставления или замены, а также за создание исключения.

  • Свойство MaxCharCount , которое возвращает максимальное количество символов, которые может возвращать резервная реализация. Для резервного обработчика исключения его значение должно быть нулевым.

Дополнительные сведения о стратегиях кодирования, декодирования и резервного копирования см. в разделе "Кодировка символов" в платформа .NET Framework.

Конструкторы

EncoderFallback()

Инициализирует новый экземпляр класса EncoderFallback.

Свойства

ExceptionFallback

Получает объект, который создает исключение, если входной символ не может быть закодирован.

MaxCharCount

При переопределении в производном классе возвращает максимальное число символов, которые могут быть возвращены текущим объектом EncoderFallback.

ReplacementFallback

Получает объект, выводящий замещающую строку вместо входного символа, который не может быть закодирован.

Методы

CreateFallbackBuffer()

При переопределении в производном классе инициализирует новый экземпляр класса EncoderFallbackBuffer.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Применяется к

См. также раздел