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.GetCharsEncoding.GetString 方法解码为字符数组或字符串。

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

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

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

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

  • 替换回退,它将不能解码的每个字符替换为预定义的字符串。 .NET Framework提供预定义的替换回退处理程序。 类 DecoderReplacementFallback 将无法解码的每个字节序列替换为问号字符 (“?”,或 U+003F) 或 REPLACE 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)

适用于

另请参阅