Поделиться через


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)

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

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