DecoderFallback Класс

Определение

Предоставляет механизм обработки ошибок, называемый резервным вариантом, закодированной входной последовательности байтов, которая не может быть преобразована в выходной символ.Provides a failure-handling mechanism, called a fallback, for an encoded input byte sequence that cannot be converted to an output character.

public ref class DecoderFallback abstract
[System.Serializable]
public abstract class DecoderFallback
type DecoderFallback = class
Public MustInherit Class DecoderFallback
Наследование
DecoderFallback
Производный
Атрибуты

Комментарии

Кодировка сопоставляет символ Юникода с закодированной последовательностью байтов.An encoding maps a Unicode character to an encoded sequence of bytes. Определенная кодировка представляется типом, производным от Encoding класса.A particular encoding is represented by a type that is derived from the Encoding class. В частности, символ кодируется в последовательность байтов путем вызова Encoding.GetBytes метода типа кодировки, а последовательность байтов декодируется в массив символов или строку путем Encoding.GetChars вызова метода или Encoding.GetString .Specifically, a character is encoded to a byte sequence by calling the encoding type's Encoding.GetBytes method, and the byte sequence is decoded to a character array or a string by calling the Encoding.GetChars or Encoding.GetString method.

Операция декодирования может завершиться ошибкой, если входная последовательность байтов не может быть сопоставлена с кодировкой.A decoding operation can fail if the input byte sequence cannot be mapped by the encoding. Например, ASCIIEncoding объект не может декодировать последовательность байтов, если эта последовательность представляет символ, имеющий значение кодовой точки, находящееся за пределами диапазона u + 0000 до u + 007F.For example, an ASCIIEncoding object cannot decode a byte sequence if that sequence represents a character that has a code point value that is outside the range U+0000 to U+007F.

Если декодирование не может быть выполнено, .NET Framework предоставляет механизм обработки сбоев, называемый откатом.When a decoding conversion cannot be performed, the .NET Framework provides a failure-handling mechanism called a fallback. Приложение может использовать предопределенные резервные .NET Framework декодеров или создать пользовательский резерв декодера, производный от DecoderFallback классов и. DecoderFallbackBufferYour application can use predefined .NET Framework decoder fallbacks, or it can create a custom decoder fallback derived from the DecoderFallback and DecoderFallbackBuffer classes.

DecoderFallbackи DecoderFallbackBuffer являются базовыми классами для всех методов декодирования резервных обработчиков в .NET Framework.DecoderFallback and DecoderFallbackBuffer are the base classes for all decoding fallback handlers in the .NET Framework. Они поддерживают следующие три типа механизмов обработки резервных копий:They support the following three kinds of fallback handling mechanisms:

  • Стратегия наилучшего соответствия, которая сопоставляет допустимые символы Юникода, которые не могут быть декодированы, в приблизительный эквивалент.Best-fit fallback, which maps valid Unicode characters that cannot be decoded to an approximate equivalent. Например, резервный обработчик наилучшего соответствия для ASCIIEncoding класса может сопоставлять Æ (u + 00C6) с AE (u + 0041 + U + 0045).For example, a best-fit fallback handler for the ASCIIEncoding class might map Æ (U+00C6) to AE (U+0041 + U+0045). Для того, чтобы использовать один алфавит (например, Latin или Roman), можно применить резервный обработчик наилучшего соответствия.A best-fit fallback handler might also be implemented to transliterate one alphabet (such as Cyrillic) to another (such as Latin or Roman). .NET Framework не предоставляет никаких открытых резервных реализаций наилучшего соответствия.The .NET Framework does not provide any public best-fit fallback implementations.

  • Резервный вариант замены, который заменяет каждый символ, который не может быть декодирован с помощью предопределенной строки.Replacement fallback, which replaces each character that cannot be decoded with a predefined string. .NET Framework предоставляет предопределенный резервный обработчик замены.The .NET Framework provides a predefined replacement fallback handler. DecoderReplacementFallback Класс заменяет каждую последовательность байтов, которую нельзя декодировать символом вопросительного знака ("?" или U + 003F), или символом замены (u + FFFD).The DecoderReplacementFallback class replaces each byte sequence that cannot be decoded with a question mark character ("?", or U+003F) or a REPLACEMENT CHARACTER (U+FFFD). Строку замены можно настроить, указав подстановку в вызове DecoderReplacementFallback.DecoderReplacementFallback(String) конструктора.You can customize the replacement string by specifying a substitute in the call to the DecoderReplacementFallback.DecoderReplacementFallback(String) constructor. После выпуска строки замены операция декодирования продолжит преобразование оставшейся части входных данных.After the substitute string is emitted, the decoding operation continues converting the remainder of the input.

  • Откат исключения, который вызывает исключение, если последовательность байтов не может быть декодирована.Exception fallback, which throws an exception when a byte sequence cannot be decoded. .NET Framework предоставляет предопределенный обработчик резервных исключений.The .NET Framework provides a predefined exception fallback handler. DecoderExceptionFallback Класс создаетисключениеприобнаружениинедопустимойпоследовательностибайтовиDecoderFallbackException завершает операцию декодирования.The DecoderExceptionFallback class throws a DecoderFallbackException when an invalid byte sequence is encountered, and the decoding operation terminates.

Если вы решили реализовать пользовательское решение, необходимо переопределить следующие абстрактные члены DecoderFallback класса:If you choose to implement a custom solution, you must override the following abstract members of the DecoderFallback class:

  • Метод, возвращающий экземпляр класса, производный DecoderFallbackBufferот. CreateFallbackBufferThe CreateFallbackBuffer method, which returns a class instance derived from DecoderFallbackBuffer. В зависимости от типа разрабатываемого DecoderFallbackBuffer резервного обработчика, реализация отвечает за выполнение сопоставления или замены, а также за создание исключения.Depending on the type of fallback handler that you are developing, the DecoderFallbackBuffer implementation is responsible for performing the mapping or replacement, or for throwing the exception.

  • MaxCharCount Свойство, возвращающее максимальное число символов, которое может возвращать резервная реализация.The MaxCharCount property, which returns the maximum number of characters that the fallback implementation can return. Для обработчика резервного исключения его значение должно быть равно нулю.For an exception fallback handler, its value should be zero.

Дополнительные сведения о кодировании, декодировании и резервных стратегиях см. в разделе кодировка символов в .NET Framework.For more information about encoding, decoding, and fallback strategies, see Character Encoding in the .NET Framework.

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

DecoderFallback()

Инициализирует новый экземпляр класса DecoderFallback.Initializes a new instance of the DecoderFallback class.

Свойства

ExceptionFallback

Получает объект, который создает исключение, если входная последовательность байтов не может быть декодирована.Gets an object that throws an exception when an input byte sequence cannot be decoded.

MaxCharCount

При переопределении в производном классе возвращает максимальное число символов, которые могут быть возвращены текущим объектом DecoderFallback.When overridden in a derived class, gets the maximum number of characters the current DecoderFallback object can return.

ReplacementFallback

Получает объект, выводящий замещающую строку вместо входной последовательности байтов, которая не может быть декодирована.Gets an object that outputs a substitute string in place of an input byte sequence that cannot be decoded.

Методы

CreateFallbackBuffer()

При переопределении в производном классе инициализирует новый экземпляр класса DecoderFallbackBuffer.When overridden in a derived class, initializes a new instance of the DecoderFallbackBuffer class.

Equals(Object)

Определяет, равен ли заданный объект текущему объекту.Determines whether the specified object is equal to the current object.

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

Служит хэш-функцией по умолчанию.Serves as the default hash function.

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

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

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

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

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

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

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

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

Дополнительно