Encoding.RegisterProvider(EncodingProvider) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
注册编码提供程序。
public:
static void RegisterProvider(System::Text::EncodingProvider ^ provider);
[System.Security.SecurityCritical]
public static void RegisterProvider (System.Text.EncodingProvider provider);
public static void RegisterProvider (System.Text.EncodingProvider provider);
[<System.Security.SecurityCritical>]
static member RegisterProvider : System.Text.EncodingProvider -> unit
static member RegisterProvider : System.Text.EncodingProvider -> unit
Public Shared Sub RegisterProvider (provider As EncodingProvider)
参数
- provider
- EncodingProvider
提供对其他字符编码的访问权限的 EncodingProvider 的子类。
- 属性
例外
provider
上声明的默认值为 null
。
注解
RegisterProvider方法允许注册派生自 EncodingProvider 的类,使字符编码在不支持它们的平台上可用。 注册编码提供程序后,可通过调用任何重载来检索它支持的编码 Encoding.GetEncoding 。 如果有多个编码提供程序,则该 Encoding.GetEncoding 方法会尝试从每个提供程序中检索指定的编码(从最近注册的提供程序开始)。
使用方法注册编码提供程序 RegisterProvider 还会在传递的参数时,修改Encoding.getencoding (int32)和EncodingProvider (Int32,EncoderFallback,DecoderFallback)方法的行为 0
:
如果注册的提供程序为 CodePagesEncodingProvider ,则在 Windows 操作系统上运行时,方法将返回与系统活动代码页匹配的编码。
自定义编码提供程序可以选择在 GetEncoding 为这些方法重载之一传递参数时要返回的编码
0
。 提供程序还可以选择不通过使方法返回来返回编码 EncodingProvider.GetEncodingnull
。
从 .NET Framework 4.6 开始,.NET Framework 包含一个编码提供程序,该提供程序使编码可用,该提供程序 CodePagesEncodingProvider 在完整 .NET Framework 中存在,但在通用 Windows 平台中不可用。 默认情况下,通用 Windows 平台仅支持 Unicode 编码、ASCII 和代码页28591。
如果对方法的多个调用中使用了相同的编码提供程序 RegisterProvider ,则只有第一个方法调用将注册该提供程序。 后续调用将被忽略。
如果 RegisterProvider 调用方法来注册处理相同编码的多个提供程序,则最后一个注册的提供程序将用于所有编码和解码操作。 将忽略任何以前注册的提供程序。