EncodingProvider.GetEncoding 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
返回一个编码。
重载
GetEncoding(Int32) |
返回与指定代码页标识符关联的编码。 |
GetEncoding(String) |
返回具有指定名称的编码。 |
GetEncoding(Int32, EncoderFallback, DecoderFallback) |
返回与指定代码页标识符关联的编码。 参数指定一个错误处理程序,用于处理无法编码的字符和无法解码的字节序列。 |
GetEncoding(String, EncoderFallback, DecoderFallback) |
返回与指定名称关联的编码。 参数指定一个错误处理程序,用于处理无法编码的字符和无法解码的字节序列。 |
GetEncoding(Int32)
- Source:
- EncodingProvider.cs
- Source:
- EncodingProvider.cs
- Source:
- EncodingProvider.cs
返回与指定代码页标识符关联的编码。
public:
abstract System::Text::Encoding ^ GetEncoding(int codepage);
public abstract System.Text.Encoding GetEncoding (int codepage);
public abstract System.Text.Encoding? GetEncoding (int codepage);
abstract member GetEncoding : int -> System.Text.Encoding
Public MustOverride Function GetEncoding (codepage As Integer) As Encoding
参数
- codepage
- Int32
所请求编码的代码页标识符。
返回
与指定代码页关联的编码,如果此 EncodingProvider 无法返回对应于 codepage
的有效编码,则为 null
。
注解
调用方备注
此方法由 Encoding.GetEncoding (Int32) 方法调用。 不应直接从用户代码调用它。
实施者说明
重写 GetEncoding(Int32) 方法以返回子类支持的 EncodingProvider 一个或多个编码。 当用户代码尝试通过调用 GetEncoding(Int32) 方法检索编码时,该方法会将 codepage
标识符传递给每个已注册的编码提供程序,直到一个提供程序返回有效的编码。 如果没有返回有效的编码,则 GetEncoding(Int32) 方法将尝试检索其代码页标识符为 codepage
的缓存编码。 因此,如果 codepage
不是你支持的编码的代码页标识符,则 该方法应返回 null
;它不应引发异常。
调用方说明
此方法由 GetEncoding(Int32) 方法调用。 不应直接从用户代码调用它。
另请参阅
适用于
GetEncoding(String)
- Source:
- EncodingProvider.cs
- Source:
- EncodingProvider.cs
- Source:
- EncodingProvider.cs
返回具有指定名称的编码。
public:
abstract System::Text::Encoding ^ GetEncoding(System::String ^ name);
public abstract System.Text.Encoding GetEncoding (string name);
public abstract System.Text.Encoding? GetEncoding (string name);
abstract member GetEncoding : string -> System.Text.Encoding
Public MustOverride Function GetEncoding (name As String) As Encoding
参数
- name
- String
所请求编码的名称。
返回
与指定名称关联的编码,如果此 EncodingProvider 无法返回对应于 name
的有效编码,则为 null
。
注解
继承者的注释
重写 GetEncoding (String) 方法以返回子类支持的 EncodingProvider 编码。 当用户代码尝试通过调用 GetEncoding (String) 方法检索编码时,该方法会将 name
参数传递给每个已注册的编码提供程序,直到返回有效的编码。 如果没有返回有效的编码, 则 GetEncoding (String) 方法将尝试检索名称为 的 name
缓存编码。 因此,如果 name
不是支持的编码的名称,则 方法应返回 null
。 方法应引发异常的唯一情况是 如果 为 ,null
则为 name
。
调用方备注
此方法由 Encoding.GetEncoding (String) 方法调用。 不应直接从用户代码调用它。
实施者说明
重写 GetEncoding(String) 方法以返回子类支持的 EncodingProvider 一个或多个编码。 当用户代码尝试通过调用 GetEncoding(String) 方法检索编码时,该方法会将 name
参数传递给每个已注册的编码提供程序,直到返回有效的编码。 如果没有返回有效的编码,则 GetEncoding(String) 方法将尝试检索名称为 的 name
缓存编码。 因此,如果 name
不是支持的编码的名称,则 方法应返回 null
。 方法应引发异常的唯一情况是 如果 为 ,null
则为 name
。
调用方说明
此方法由 GetEncoding(String) 方法调用。 不应直接从用户代码调用它。
另请参阅
适用于
GetEncoding(Int32, EncoderFallback, DecoderFallback)
- Source:
- EncodingProvider.cs
- Source:
- EncodingProvider.cs
- Source:
- EncodingProvider.cs
返回与指定代码页标识符关联的编码。 参数指定一个错误处理程序,用于处理无法编码的字符和无法解码的字节序列。
public:
virtual System::Text::Encoding ^ GetEncoding(int codepage, System::Text::EncoderFallback ^ encoderFallback, System::Text::DecoderFallback ^ decoderFallback);
public virtual System.Text.Encoding GetEncoding (int codepage, System.Text.EncoderFallback encoderFallback, System.Text.DecoderFallback decoderFallback);
public virtual System.Text.Encoding? GetEncoding (int codepage, System.Text.EncoderFallback encoderFallback, System.Text.DecoderFallback decoderFallback);
abstract member GetEncoding : int * System.Text.EncoderFallback * System.Text.DecoderFallback -> System.Text.Encoding
override this.GetEncoding : int * System.Text.EncoderFallback * System.Text.DecoderFallback -> System.Text.Encoding
Public Overridable Function GetEncoding (codepage As Integer, encoderFallback As EncoderFallback, decoderFallback As DecoderFallback) As Encoding
参数
- codepage
- Int32
所请求编码的代码页标识符。
- encoderFallback
- EncoderFallback
一个对象,在无法用此编码对字符进行编码时,该对象可用来提供错误处理过程。
- decoderFallback
- DecoderFallback
一个对象,在无法用此编码对字节序列进行解码时,该对象可用来提供错误处理过程。
返回
与指定代码页关联的编码,如果此 EncodingProvider 无法返回对应于 codepage
的有效编码,则为 null
。
注解
encoderFallback
和 decoderFallback
参数是定义回退策略的对象,当编码器无法将字符转换为字节序列或解码器无法将字节序列转换为字符时使用的回退策略。 .NET Framework提供以下回退机制:
异常回退。
encoderFallback
如果 参数是 的EncoderExceptionFallback实例,或者decoderExceptionFallback
参数是 的DecoderExceptionFallback实例,则如果字符无法编码,编码方法将引发异常;如果无法解码字节序列,则解码方法将引发异常。替换回退。
encoderFallback
如果 参数是 的EncoderReplacementFallback实例,或者decoderExceptionFallback
参数是 的DecoderReplacementFallback实例,则编码和解码方法会将替换字符串替换为无法编码且无法解码字节序列的字符。 如果通过调用无参数构造函数实例化替换回退对象,则替换字符为“?”。 如果调用 EncoderReplacementFallback.EncoderReplacementFallback(String) 或 DecoderReplacementFallback.DecoderReplacementFallback(String) 构造函数,则可以指定替换字符串。最适合回退。 可以从 或 DecoderFallback 类派生EncoderFallback,以实现最适合的替换机制。
继承者说明
由于对此方法的调用使用方法的 GetEncoding(Int32) 实现,因此无需重写它。 当用户代码尝试通过调用 GetEncoding(Int32, EncoderFallback, DecoderFallback) 方法检索编码时,该方法会将 codepage
标识符传递给每个已注册的编码提供程序,直到一个提供程序返回有效的编码。 如果没有返回有效的编码,则 GetEncoding(Int32) 方法将尝试检索其代码页标识符为 codepage
的缓存编码。 因此,如果你确实选择重写 GetEncoding(Int32, EncoderFallback, DecoderFallback) 方法,则重写应返回 null
(如果 codepage
不是你支持的编码的代码页标识符);它不应引发异常。
调用方说明
此方法由 GetEncoding(Int32, EncoderFallback, DecoderFallback) 方法调用。 不应直接从用户代码调用它。
另请参阅
适用于
GetEncoding(String, EncoderFallback, DecoderFallback)
- Source:
- EncodingProvider.cs
- Source:
- EncodingProvider.cs
- Source:
- EncodingProvider.cs
返回与指定名称关联的编码。 参数指定一个错误处理程序,用于处理无法编码的字符和无法解码的字节序列。
public:
virtual System::Text::Encoding ^ GetEncoding(System::String ^ name, System::Text::EncoderFallback ^ encoderFallback, System::Text::DecoderFallback ^ decoderFallback);
public virtual System.Text.Encoding GetEncoding (string name, System.Text.EncoderFallback encoderFallback, System.Text.DecoderFallback decoderFallback);
public virtual System.Text.Encoding? GetEncoding (string name, System.Text.EncoderFallback encoderFallback, System.Text.DecoderFallback decoderFallback);
abstract member GetEncoding : string * System.Text.EncoderFallback * System.Text.DecoderFallback -> System.Text.Encoding
override this.GetEncoding : string * System.Text.EncoderFallback * System.Text.DecoderFallback -> System.Text.Encoding
Public Overridable Function GetEncoding (name As String, encoderFallback As EncoderFallback, decoderFallback As DecoderFallback) As Encoding
参数
- name
- String
首选编码的名称。
- encoderFallback
- EncoderFallback
一个对象,在无法用此编码对字符进行编码时,该对象可用来提供错误处理过程。
- decoderFallback
- DecoderFallback
一个对象,在无法用当前编码对字节序列进行解码时,该对象可用来提供错误处理过程。
返回
与指定名称关联的编码,如果此 EncodingProvider 无法返回对应于 name
的有效编码,则为 null
。
注解
encoderFallback
和 decoderFallback
参数是定义回退策略的对象,当编码器无法将字符转换为字节序列或解码器无法将字节序列转换为字符时使用的回退策略。 .NET Framework提供以下回退机制:
异常回退。
encoderFallback
如果 参数是 的EncoderExceptionFallback实例,或者decoderExceptionFallback
参数是 的DecoderExceptionFallback实例,则如果字符无法编码,编码方法将引发异常;如果无法解码字节序列,则解码方法将引发异常。替换回退。
encoderFallback
如果 参数是 的EncoderReplacementFallback实例,或者decoderExceptionFallback
参数是 的DecoderReplacementFallback实例,则编码和解码方法会将替换字符串替换为无法编码且无法解码字节序列的字符。 如果通过调用无参数构造函数实例化替换回退对象,则替换字符为“?”。 如果调用 EncoderReplacementFallback.EncoderReplacementFallback(String) 或 DecoderReplacementFallback.DecoderReplacementFallback(String) 构造函数,则可以指定替换字符串。最适合回退。 可以从 或 DecoderFallback 类派生EncoderFallback,以实现最适合的替换机制。
继承者说明
由于对此方法的调用使用方法的 GetEncoding(String) 实现,因此无需重写它。 当用户代码尝试通过调用 GetEncoding(String, EncoderFallback, DecoderFallback) 方法检索编码时,该方法会将 codepage
标识符传递给每个已注册的编码提供程序,直到一个提供程序返回有效的编码。 如果没有返回有效的编码,则 GetEncoding(Int32) 方法将尝试检索其代码页标识符为 codepage
的缓存编码。 因此,如果你确实选择重写 GetEncoding(Int32, EncoderFallback, DecoderFallback) 方法,则重写应返回 null
(如果 codepage
不是你支持的编码的代码页标识符);它不应引发异常。
调用方说明
此方法由 GetEncoding(String, EncoderFallback, DecoderFallback) 方法调用。 不应直接从用户代码调用它。