EncoderFallback Класс

Определение

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

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

Комментарии

Кодировка сопоставляет символ Юникода с закодированной последовательностью байтов.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.

Операция кодирования может завершиться ошибкой, если входной символ не может быть представлен в кодировке.An encoding operation can fail if the input character cannot be represented by the encoding. Например, ASCIIEncoding объект не может кодировать символ, значение кодовой точки Юникода которого выходит за пределы диапазона от u + 0000 до u + 007F.For example, an ASCIIEncoding object cannot encode a character whose Unicode code point value is outside the range U+0000 to U+007F.

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

EncoderFallbackи EncoderFallbackBuffer являются базовыми классами для всех обработчиков резервного кодирования в .NET Framework.EncoderFallback and EncoderFallbackBuffer are the base classes for all encoding 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 encoded 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 encoded with a predefined string. .NET Framework предоставляет предопределенный резервный обработчик замены.The .NET Framework provides a predefined replacement fallback handler. EncoderReplacementFallback Класс заменяет каждую последовательность байтов, которую нельзя декодировать символом вопросительного знака ("?" или U + 003F), или символом замены (u + FFFD).The EncoderReplacementFallback class replaces each byte sequence that cannot be decoded with a question mark character ("?", or U+003F) or a REPLACEMENT CHARACTER (U+FFFD). Строку замены можно настроить, указав подстановку в вызове EncoderReplacementFallback.EncoderReplacementFallback(String) конструктора.You can customize the replacement string by specifying a substitute in the call to the EncoderReplacementFallback.EncoderReplacementFallback(String) constructor. После выпуска строки замены операция кодирования продолжит преобразование оставшейся части входных данных.After the substitute string is emitted, the encoding operation continues converting the remainder of the input.

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

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

  • Метод, возвращающий экземпляр класса, производный EncoderFallbackBufferот. CreateFallbackBufferThe CreateFallbackBuffer method, which returns a class instance derived from EncoderFallbackBuffer. В зависимости от типа разрабатываемого EncoderFallbackBuffer резервного обработчика, реализация отвечает за выполнение сопоставления или замены, а также за создание исключения.Depending on the type of fallback handler that you are developing, the EncoderFallbackBuffer 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.

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

EncoderFallback()

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

Свойства

ExceptionFallback

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

MaxCharCount

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

ReplacementFallback

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

Методы

CreateFallbackBuffer()

При переопределении в производном классе инициализирует новый экземпляр класса EncoderFallbackBuffer.When overridden in a derived class, initializes a new instance of the EncoderFallbackBuffer 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)

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

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