DecoderFallback 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
为不能转换为输出字符的已编码输入字节序列提供称为“回退”的失败处理机制。
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) 或 REPLACE CHARACTER (U+FFFD) 。 可以通过在调用 DecoderReplacementFallback.DecoderReplacementFallback(String) 构造函数时指定替换字符串来自定义替换字符串。 发出替换字符串后,解码操作将继续转换输入的其余部分。
异常回退,当无法解码字节序列时引发异常。 .NET Framework提供预定义的异常回退处理程序。 类 DecoderExceptionFallback 在遇到无效字节序列时引发 DecoderFallbackException ,解码操作终止。
如果选择实现自定义解决方案,则必须重写类 DecoderFallback 的以下抽象成员:
该方法 CreateFallbackBuffer 返回派生自 DecoderFallbackBuffer. 的类实例。 根据正在开发的回退处理程序的类型, DecoderFallbackBuffer 实现负责执行映射或替换,或引发异常。
该 MaxCharCount 属性返回回退实现可以返回的最大字符数。 对于异常回退处理程序,其值应为零。
有关编码、解码和回退策略的详细信息,请参阅.NET Framework中的字符编码。
构造函数
DecoderFallback() |
初始化 DecoderFallback 类的新实例。 |
属性
ExceptionFallback |
获取无法解码输入字节序列时引发异常的对象。 |
MaxCharCount |
当用派生类重写时,获取当前 DecoderFallback 对象能返回的最大字符数。 |
ReplacementFallback |
获取输出替代字符串的对象,以替代无法解码的输入字节序列。 |
方法
CreateFallbackBuffer() |
在派生类中重写时,将初始化 DecoderFallbackBuffer 类的新实例。 |
Equals(Object) |
确定指定对象是否等于当前对象。 (继承自 Object) |
GetHashCode() |
作为默认哈希函数。 (继承自 Object) |
GetType() |
获取当前实例的 Type。 (继承自 Object) |
MemberwiseClone() |
创建当前 Object 的浅表副本。 (继承自 Object) |
ToString() |
返回表示当前对象的字符串。 (继承自 Object) |