EncodingProvider.GetEncoding 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
傳回編碼方式。
多載
GetEncoding(Int32) |
傳回與指定字碼頁識別項相關聯的編碼方式。 |
GetEncoding(String) |
傳回具有指定名稱的編碼方式。 |
GetEncoding(Int32, EncoderFallback, DecoderFallback) |
傳回與指定字碼頁識別項相關聯的編碼方式。 參數會針對無法編碼的字元以及無法解碼的位元組序列指定錯誤處理常式。 |
GetEncoding(String, EncoderFallback, DecoderFallback) |
傳回與指定名稱建立關聯的編碼方式。 參數會針對無法編碼的字元以及無法解碼的位元組序列指定錯誤處理常式。 |
GetEncoding(Int32)
傳回與指定字碼頁識別項相關聯的編碼方式。
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)
傳回具有指定名稱的編碼方式。
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)
傳回與指定字碼頁識別項相關聯的編碼方式。 參數會針對無法編碼的字元以及無法解碼的位元組序列指定錯誤處理常式。
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
如果自變數是 的實例,或decoderExceptionFallback
自變數是 的EncoderExceptionFallbackDecoderExceptionFallback實例,則編碼方法會在無法編碼字元時擲回例外狀況,而且如果位元組序列無法譯碼,譯碼方法會擲回例外狀況。取代後援。
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) 方法,覆寫應該會傳回 ,如果 codepage
不是您所支援編碼的代碼頁標識碼,則應該永遠不會擲回null
例外狀況。
給呼叫者的注意事項
此方法是由 GetEncoding(Int32, EncoderFallback, DecoderFallback) 方法呼叫。 您不應該直接從使用者程式代碼呼叫它。
另請參閱
適用於
GetEncoding(String, EncoderFallback, DecoderFallback)
傳回與指定名稱建立關聯的編碼方式。 參數會針對無法編碼的字元以及無法解碼的位元組序列指定錯誤處理常式。
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
如果自變數是 的實例,或decoderExceptionFallback
自變數是 的EncoderExceptionFallbackDecoderExceptionFallback實例,則編碼方法會在無法編碼字元時擲回例外狀況,而且如果位元組序列無法譯碼,譯碼方法會擲回例外狀況。取代後援。
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) 方法,覆寫應該會傳回 ,如果 codepage
不是您所支援編碼的代碼頁標識碼,則應該永遠不會擲回null
例外狀況。
給呼叫者的注意事項
此方法是由 GetEncoding(String, EncoderFallback, DecoderFallback) 方法呼叫。 您不應該直接從使用者程式代碼呼叫它。