语言

DecoderFallback 类

定义

为无法转换为输出字符的编码输入字节序列提供称为回退的故障处理机制。

public ref class DecoderFallback abstract
public abstract class DecoderFallback
[System.Serializable]
public abstract class DecoderFallback
type DecoderFallback = class
[<System.Serializable>]
type DecoderFallback = class
Public MustInherit Class DecoderFallback
继承
DecoderFallback
派生
属性

注解

编码将 Unicode 字符映射到编码的字节序列。 特定编码由派生自类的类型 Encoding 表示。 具体而言,通过调用编码类型的 Encoding.GetBytes 方法将字符编码为字节序列,字节序列通过调用 Encoding.GetChars 或 Encoding.GetString 方法解码为字符数组或字符串。

如果无法通过编码映射输入字节序列,解码操作可能会失败。 例如, ASCIIEncoding 如果该序列表示代码点值超出 U+0000 到 U+007F 的字符,则对象无法解码字节序列。

当无法执行解码转换时,.NET Framework 提供了一种称为回退的故障处理机制。 应用程序可以使用预定义的 .NET Framework 解码器回退,也可以创建派生自和DecoderFallback类的DecoderFallbackBuffer自定义解码器回退。

DecoderFallback 是 DecoderFallbackBuffer .NET Framework 中所有解码回退处理程序的基类。 它们支持以下三种类型的回退处理机制:

  • 最佳回退,它将无法解码的有效 Unicode 字符映射到近似等效字符。 例如,类的最佳 ASCIIEncoding 回退处理程序可能会将 Æ(U+00C6)映射到 AE(U+0041 + U+0045)。 还可以实现最佳回退处理程序,以将一个字母(如西里尔文)音译到另一个字母(如拉丁语或罗马)。 .NET Framework 不提供任何公共最佳回退实现。

  • 替换回退,它将不能解码的每个字符替换为预定义字符串。 .NET Framework 提供预定义的替换回退处理程序。 该 DecoderReplacementFallback 类用问号字符(“?”或 U+003F)或 REPLACEMENT CHARACTER(U+FFFD)替换无法解码的每个字节序列。 可以通过在对构造函数的调用 DecoderReplacementFallback.DecoderReplacementFallback(String) 中指定替换字符串来自定义替换字符串。 发出替换字符串后,解码操作将继续转换输入的其余部分。

  • 异常回退,在无法解码字节序列时引发异常。 .NET Framework 提供预定义的异常回退处理程序。 当遇到无效字节序列并且解码操作终止时,该 DecoderExceptionFallback 类将引发 DecoderFallbackException 。

如果选择实现自定义解决方案,则必须重写类的 DecoderFallback 以下抽象成员:

有关编码、解码和回退策略的详细信息,请参阅 .NET Framework 中的字符编码。

构造函数

名称 说明
DecoderFallback()

初始化 DecoderFallback 类的新实例。

属性

名称 说明
ExceptionFallback

获取在无法解码输入字节序列时引发异常的对象。

MaxCharCount

在派生类中重写时,获取当前 DecoderFallback 对象可以返回的最大字符数。

ReplacementFallback

获取一个对象,该对象输出替换字符串代替无法解码的输入字节序列。

方法

名称 说明
CreateFallbackBuffer()

在派生类中重写时,初始化该类的新实例 DecoderFallbackBuffer 。

Equals(Object)

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

(继承自 Object)
GetHashCode()

用作默认哈希函数。

(继承自 Object)
GetType()

获取当前实例的 Type。

(继承自 Object)
MemberwiseClone()

创建当前 Object的浅表副本。

(继承自 Object)
ToString()

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

(继承自 Object)

适用于

另请参阅