Encoding.RegisterProvider(EncodingProvider) 方法

定义

注册编码提供程序。

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.GetEncoding null

从 .NET Framework 4.6 开始,.NET Framework 包含一个编码提供程序,该提供程序使编码可用,该提供程序 CodePagesEncodingProvider 在完整 .NET Framework 中存在,但在通用 Windows 平台中不可用。 默认情况下,通用 Windows 平台仅支持 Unicode 编码、ASCII 和代码页28591。

如果对方法的多个调用中使用了相同的编码提供程序 RegisterProvider ,则只有第一个方法调用将注册该提供程序。 后续调用将被忽略。

如果 RegisterProvider 调用方法来注册处理相同编码的多个提供程序,则最后一个注册的提供程序将用于所有编码和解码操作。 将忽略任何以前注册的提供程序。

适用于

另请参阅