EncoderFallback 类

定义

为不能转换为已编码输出字节序列的输入字符提供称为“回退”的失败处理机制。

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

注解

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

如果输入字符不能由编码表示,编码操作可能会失败。 例如,对象 ASCIIEncoding 无法对 Unicode 代码点值不在 U+0000 到 U+007F 范围内的字符进行编码。

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

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

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

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

  • 异常回退,当无法对字符进行编码时引发异常。 .NET Framework提供预定义的异常回退处理程序。 类 EncoderExceptionFallback 在遇到无效字符时引发 EncoderFallbackException ,编码操作将终止。

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

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

构造函数

EncoderFallback()

初始化 EncoderFallback 类的新实例。

属性

ExceptionFallback

获取一个对象,在无法对输入字符进行编码时,该对象将引发异常。

MaxCharCount

当用派生类重写时,获取当前 EncoderFallback 对象能返回的最大字符数。

ReplacementFallback

获取一个对象,该对象会输出一个替代字符串来代替无法编码的输入字符。

方法

CreateFallbackBuffer()

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

Equals(Object)

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

(继承自 Object)
GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetType()

获取当前实例的 Type

(继承自 Object)
MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
ToString()

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

(继承自 Object)

适用于

另请参阅