EncoderFallback 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
为不能转换为已编码输出字节序列的输入字符提供称为“回退”的失败处理机制。
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.GetChars 或 Encoding.GetString 方法解码为字符数组或字符串。
如果输入字符不能由编码表示,编码操作可能会失败。 例如,对象 ASCIIEncoding 无法对 Unicode 代码点值不在 U+0000 到 U+007F 范围内的字符进行编码。
无法执行编码转换时,.NET Framework提供称为回退的故障处理机制。 应用程序可以使用预定义的.NET Framework编码器回退,也可以创建派生自EncoderFallback和EncoderFallbackBuffer类的自定义编码器回退。
EncoderFallback是EncoderFallbackBuffer.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 的以下抽象成员:
该方法 CreateFallbackBuffer 返回派生自 EncoderFallbackBuffer的类实例。 根据正在开发的回退处理程序的类型, EncoderFallbackBuffer 实现负责执行映射或替换,或引发异常。
该 MaxCharCount 属性返回回退实现可以返回的最大字符数。 对于异常回退处理程序,其值应为零。
有关编码、解码和回退策略的详细信息,请参阅.NET Framework中的字符编码。
构造函数
EncoderFallback() |
初始化 EncoderFallback 类的新实例。 |
属性
ExceptionFallback |
获取一个对象,在无法对输入字符进行编码时,该对象将引发异常。 |
MaxCharCount |
当用派生类重写时,获取当前 EncoderFallback 对象能返回的最大字符数。 |
ReplacementFallback |
获取一个对象,该对象会输出一个替代字符串来代替无法编码的输入字符。 |
方法
CreateFallbackBuffer() |
在派生类中重写时,将初始化 EncoderFallbackBuffer 类的新实例。 |
Equals(Object) |
确定指定对象是否等于当前对象。 (继承自 Object) |
GetHashCode() |
作为默认哈希函数。 (继承自 Object) |
GetType() |
获取当前实例的 Type。 (继承自 Object) |
MemberwiseClone() |
创建当前 Object 的浅表副本。 (继承自 Object) |
ToString() |
返回表示当前对象的字符串。 (继承自 Object) |