EncodingProvider.GetEncoding 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
回傳一個編碼。
多載
| 名稱 | Description |
|---|---|
| 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);
abstract member GetEncoding : int -> System.Text.Encoding
Public MustOverride Function GetEncoding (codepage As Integer) As Encoding
參數
- codepage
- Int32
請求編碼的代碼頁識別碼。
傳回
與指定代碼頁相關的編碼,若 null 無法 EncodingProvider 回傳對應的 codepage有效編碼,則為 。
備註
呼叫者注意事項
此方法稱為 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);
abstract member GetEncoding : string -> System.Text.Encoding
Public MustOverride Function GetEncoding (name As String) As Encoding
參數
- name
- String
請求的編碼名稱。
傳回
與指定名稱相關的編碼,或 null 若無法 EncodingProvider 回傳對應的 name有效編碼,則為 。
備註
繼承者備註
你要覆寫 GetEncoding(String) 方法,回傳你 EncodingProvider 子類支援的編碼。 當使用者程式碼嘗試呼叫 GetEncoding(String) 方法來取得編碼時,該方法會將參數傳給 name 所有註冊的編碼提供者,直到有一方回傳有效的編碼為止。 若無有效編碼回傳, GetEncoding(String) 方法嘗試擷取名為 name的快取編碼。 因此,如果 name 不是你支援的編碼名稱,該方法應該回傳 null。 該方法唯一應該拋出例外的情況是 name 是 。null
呼叫者注意事項
此方法稱為 Encoding.GetEncoding(String) 方法。 你不應該直接從使用者程式碼呼叫它。
給實施者的注意事項
你覆寫 GetEncoding(String) 方法,回傳子類別支援 EncodingProvider 的編碼。 當使用者程式碼嘗試呼叫 GetEncoding(String) 該方法來取得編碼時,該方法會將參數傳給 name 所有註冊的編碼提供者,直到有一方回傳有效的編碼為止。 若無有效編碼回傳, GetEncoding(String) 方法嘗試取取名為 name的快取編碼。 因此,如果 name 不是你支援的編碼名稱,該方法應該回傳 null。 該方法唯一應該拋出例外的情況是 name 是 。null
給呼叫者的注意事項
此方法由 稱為 。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);
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
當位元組序列無法用此編碼解碼時,提供錯誤處理程序的物件。
傳回
與指定代碼頁相關的編碼,若 null 無法 EncodingProvider 回傳對應的 codepage有效編碼,則為 。
備註
encoderFallback和decoderFallback參數是定義在編碼器無法將字元轉換為位元組序列,或解碼器無法將位元組序列轉換為字元時,所採用的備援策略的物件。 .NET Framework 提供以下備援機制:
例外備案。 若參數
encoderFallback是 的實例 EncoderExceptionFallback,或decoderExceptionFallback參數是 的實例 DecoderExceptionFallback,編碼方法會拋出例外,若無法編碼字元,則拋出例外;若無法解碼位元組序列,則拋出例外。替代方案。 若參數
encoderFallback是 的實例 EncoderReplacementFallback,或decoderExceptionFallback參數是 的實例 DecoderReplacementFallback,編碼與解碼方法則用替換字串取代無法編碼的字元,且無法解碼位元組序列。 如果你透過呼叫無參數建構子實例化替換的備援物件,替換字元會是一個「?」。 如果你呼叫 或EncoderReplacementFallback.EncoderReplacementFallback(String)DecoderReplacementFallback.DecoderReplacementFallback(String)建構子,就可以指定替換字串。最佳擬合的備用方案。 你可以從 EncoderFallback 或 DecoderFallback 類別推導出最佳擬合替換機制。
給繼承者的注意事項
由於呼叫此方法使用你對該 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);
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
當位元組序列無法用目前編碼解碼時,提供錯誤處理程序的物件。
傳回
與指定名稱相關的編碼,或 null 若無法 EncodingProvider 回傳對應的 name有效編碼,則為 。
備註
encoderFallback和decoderFallback參數是定義在編碼器無法將字元轉換為位元組序列,或解碼器無法將位元組序列轉換為字元時,所採用的備援策略的物件。 .NET 提供以下備援機制:
例外備案。 若參數
encoderFallback是 的實例 EncoderExceptionFallback,或decoderExceptionFallback參數是 的實例 DecoderExceptionFallback,編碼方法會拋出例外,若無法編碼字元,則拋出例外;若無法解碼位元組序列,則拋出例外。替代方案。 若參數
encoderFallback是 的實例 EncoderReplacementFallback,或decoderExceptionFallback參數是 的實例 DecoderReplacementFallback,編碼與解碼方法則用替換字串取代無法編碼的字元,且無法解碼位元組序列。 如果你透過呼叫無參數建構子實例化替換的備援物件,替換字元會是一個「?」。 如果你呼叫 或EncoderReplacementFallback.EncoderReplacementFallback(String)DecoderReplacementFallback.DecoderReplacementFallback(String)建構子,就可以指定替換字串。最佳擬合的備用方案。 你可以從 EncoderFallback 或 DecoderFallback 類別推導出最佳擬合替換機制。
給呼叫者的注意事項
此方法由 稱為 。GetEncoding(String, EncoderFallback, DecoderFallback) 你不應該直接從使用者程式碼呼叫它。