EncoderFallbackBuffer 类

定义

提供一个缓冲区,该缓冲区允许回退处理程序在编码器无法对输入字符进行编码时将替换字符串返回到该编码器。

public ref class EncoderFallbackBuffer abstract
public abstract class EncoderFallbackBuffer
type EncoderFallbackBuffer = class
Public MustInherit Class EncoderFallbackBuffer
继承
EncoderFallbackBuffer
派生

注解

编码定义 Unicode 字符与编码字节序列之间的映射。 如果特定字符未定义映射,则编码操作会将输入字符转换为输出字节序列失败。

如果无法执行转换,.NET Framework提供了一种故障处理机制,称为回退。 所有编码器回退处理程序必须实现以下内容:

  • 编码器回退,由派生自该类的 EncoderFallback 类表示。

  • 编码器回退缓冲区,该缓冲区由派生自 EncoderFallbackBuffer 可将字符串返回到转换操作的类派生的类型表示。

回退可以使用三种策略来处理转换失败:

实现中的 EncoderFallbackBuffer 缓冲区表示要返回到编码器的整个字符串,以响应编码器回退。 通常,实现还包括状态信息,例如要返回到编码器的下一个字符的索引以及要返回的剩余字符数。 由于 EncoderFallbackBuffer 是抽象类,因此它要求派生类至少实现以下成员:

  • 重载 Fallback 方法,当编码器无法对字符进行编码时调用该方法。 编码器将两条信息传递给回退缓冲区实现:无法编码的字符或代理项对以及输入中字符的索引。 在编码器回退异常处理程序中,此方法中会引发异常。 否则,该方法返回 true 它是否提供回退,或者 false 它未返回。

  • 如果GetNextChar方法返回true,则编码器Fallback会重复调用该方法。 在连续调用中,处理程序应返回其缓冲区中的每个字符。 返回所有字符后,应返回 U+0000。 异常处理程序始终返回 U+0000。

  • 该方法 MovePrevious 尝试将指针移到缓冲区中的上一位置,并指示移动是否成功。 异常处理程序始终返回 false

  • Remaining 属性指示要返回到编码器的剩余字符数。 异常回退处理程序始终返回零。

构造函数

EncoderFallbackBuffer()

初始化 EncoderFallbackBuffer 类的新实例。

属性

Remaining

在派生类中重写后,此属性获取当前 EncoderFallbackBuffer 对象中要处理的剩余字符数。

方法

Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
Fallback(Char, Char, Int32)

在派生类中重写后,此方法对回退缓冲区进行准备,以处理指定的代理项对。

Fallback(Char, Int32)

在派生类中重写后,此方法对回退缓冲区进行准备,以处理指定的输入字符。

GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetNextChar()

在派生类中重写后,此方法检索回退缓冲区中的下一个字符。

GetType()

获取当前实例的 Type

(继承自 Object)
MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
MovePrevious()

在派生类中重写后,此方法将使对 GetNextChar() 方法的下一次调用访问当前字符位置之前的数据缓冲区字符位置。

Reset()

初始化所有与此回退缓冲区相关的数据和状态信息。

ToString()

返回表示当前对象的字符串。

(继承自 Object)

适用于

另请参阅