CharsetEncoder 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
可將十六位 Unicode 字元序列轉換成特定字元集中位元組序列的引擎。
[Android.Runtime.Register("java/nio/charset/CharsetEncoder", DoNotGenerateAcw=true)]
public abstract class CharsetEncoder : Java.Lang.Object
[<Android.Runtime.Register("java/nio/charset/CharsetEncoder", DoNotGenerateAcw=true)>]
type CharsetEncoder = class
inherit Object
- 繼承
- 屬性
備註
可將十六位 Unicode 字元序列轉換成特定字元集中位元組序列的引擎。
“steps”>
輸入字元序列是在字元緩衝區或一系列這類緩衝區中提供。 輸出位元組序列會寫入位元組緩衝區或一系列這類緩衝區。 編碼器應該一律使用,方法是進行下列方法調用序列,稱為 編碼作業:
<老>
<li>
除非之前尚未使用編碼器,否則請透過 #reset reset
方法重設編碼器;
</李>
<li>
#encode encode
只要有其他輸入可用,請叫用方法零次或多次,傳遞 false
自endOfInput
變數並填入輸入緩衝區,並在調用之間排清輸出緩衝區;
</李>
<li>
#encode encode
在最後一次叫用 方法,並true
針對 endOfInput
自變數傳遞,然後
</李>
<li>
叫用 #flush flush
方法,讓編碼器可以將任何內部狀態排清到輸出緩衝區。
</李>
</老>
方法的每個調用 #encode encode
都會盡可能從輸入緩衝區編碼多個字元,並將產生的位元組寫入輸出緩衝區。 當需要更多輸入、輸出緩衝區中沒有足夠的空間,或發生編碼錯誤時,方法 #encode encode
會傳回 。 在每個案例中,都會 CoderResult
傳回 物件來描述終止的原因。 叫用者可以檢查此物件並填入輸入緩衝區、排清輸出緩衝區,或視需要嘗試從編碼錯誤中復原,然後再試一次。
“ce”>
編碼錯誤有兩種一般類型。 如果輸入字元序列不是合法的十六位 Unicode 序列,則輸入會被視為 格式不正確。 如果輸入字元序列合法,但無法對應至指定字元集中的有效位元組序列,則遇到 無法套用的字元 。
“cae”>
編碼錯誤處理方式取決於針對該類型錯誤所要求的動作,由類別的 CodingErrorAction
實例所描述。 可能的錯誤動作是 CodeErrorAction#IGNORE 忽略錯誤的輸入,CodeErrorAction#REPORT 會透過傳 CoderResult
回的物件向叫用者回報錯誤,或者 CodeErrorAction#REPLACE 會將錯誤的輸入取代為取代位元組陣列的目前值。 取代專案
一開始會設定為編碼器的預設取代專案,通常 (但不一定) 具有  的初始值;{
(byte)'?'
}
;
其值可以透過 #replaceWith(byte[]) replaceWith
方法變更。
格式錯誤和無法套用字元錯誤的默認動作是編碼錯誤ErrorAction#REPORT 報告。 格式錯誤的輸入錯誤動作可以透過 #onMalformedInput(CodingErrorAction) onMalformedInput
方法變更;無法套用的字元動作可以透過 #onUnmappableCharacter(CodingErrorAction) onUnmappableCharacter
方法變更。
這個類別的設計目的是要處理編碼程式的許多詳細數據,包括錯誤動作的實作。 特定 charset 的編碼器,這是這個類別的具體子類別,只需要實作抽象 #encodeLoop encodeLoop
方法,以封裝基本編碼迴圈。 維護內部狀態的子類別應該另外覆寫 #implFlush implFlush
和 #implReset implReset
方法。
這個類別的實例不安全,無法供多個並行線程使用。
已在1.4中新增。
的 java.nio.charset.CharsetEncoder
Java 檔。
此頁面的部分是根據 所建立和共用的工作進行修改,並根據 2.5 屬性授權中所述的詞彙來使用。
建構函式
CharsetEncoder(Charset, Single, Single) |
初始化新的編碼器。 |
CharsetEncoder(Charset, Single, Single, Byte[]) |
初始化新的編碼器。 |
CharsetEncoder(IntPtr, JniHandleOwnership) |
建立 JNI 物件的 Managed 表示法時使用的建構函式;由運行時間呼叫。 |
屬性
Class |
傳回這個 |
Handle |
基礎Android實例的句柄。 (繼承來源 Object) |
JniIdentityHashCode |
可將十六位 Unicode 字元序列轉換成特定字元集中位元組序列的引擎。 (繼承來源 Object) |
JniPeerMembers |
可將十六位 Unicode 字元序列轉換成特定字元集中位元組序列的引擎。 |
PeerReference |
可將十六位 Unicode 字元序列轉換成特定字元集中位元組序列的引擎。 (繼承來源 Object) |
ThresholdClass |
此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。 |
ThresholdType |
此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。 |
方法
AverageBytesPerChar() |
傳回將針對每個輸入字元產生的平均位元組數目。 |
CanEncode(Char) |
告知此編碼器是否可以編碼指定的字元。 |
CanEncode(ICharSequence) |
告知此編碼器是否可以編碼指定的字元序列。 |
CanEncode(String) |
告知此編碼器是否可以編碼指定的字元序列。 |
Charset() |
傳回建立此編碼器的 charset。 |
Clone() |
建立並傳回這個 對象的複本。 (繼承來源 Object) |
Dispose() |
可將十六位 Unicode 字元序列轉換成特定字元集中位元組序列的引擎。 (繼承來源 Object) |
Dispose(Boolean) |
可將十六位 Unicode 字元序列轉換成特定字元集中位元組序列的引擎。 (繼承來源 Object) |
Encode(CharBuffer) |
方便的方法,可將單一輸入字元緩衝區的剩餘內容編碼為新配置的位元組緩衝區。 |
Encode(CharBuffer, ByteBuffer, Boolean) |
盡可能從指定的輸入緩衝區編碼字元,並將結果寫入指定的輸出緩衝區。 |
EncodeLoop(CharBuffer, ByteBuffer) |
將一或多個字元編碼為一或多個字節。 |
Equals(Object) |
指出其他物件是否「等於」這個物件。 (繼承來源 Object) |
Flush(ByteBuffer) |
清除此編碼器。 |
GetHashCode() |
傳回此物件的雜湊碼值。 (繼承來源 Object) |
ImplFlush(ByteBuffer) |
清除此編碼器。 |
ImplOnMalformedInput(CodingErrorAction) |
報告此編碼器格式不正確輸入動作的變更。 |
ImplOnUnmappableCharacter(CodingErrorAction) |
報告此編碼器無法套用字元動作的變更。 |
ImplReplaceWith(Byte[]) |
報告此編碼器取代值的變更。 |
ImplReset() |
重設此編碼器,清除任何字元集特定的內部狀態。 |
IsLegalReplacement(Byte[]) |
告知指定的位元組陣列是否為這個編碼器的法律取代值。 |
JavaFinalize() |
當垃圾收集判斷物件不再參考物件時,垃圾收集行程會在物件上呼叫。 (繼承來源 Object) |
MalformedInputAction() |
針對格式不正確的輸入錯誤,傳回此編碼器的目前動作。 |
MaxBytesPerChar() |
傳回將針對每個輸入字元產生的位元組數目上限。 |
Notify() |
喚醒正在等候此物件監視器的單一線程。 (繼承來源 Object) |
NotifyAll() |
喚醒正在等候此物件監視器的所有線程。 (繼承來源 Object) |
OnMalformedInput(CodingErrorAction) |
針對格式不正確的輸入錯誤,變更此編碼器的動作。 |
OnUnmappableCharacter(CodingErrorAction) |
針對無法套用的字元錯誤,變更此編碼器的動作。 |
Replacement() |
傳回此編碼器的取代值。 |
ReplaceWith(Byte[]) |
變更此編碼器的取代值。 |
Reset() |
重設此編碼器,清除任何內部狀態。 |
SetHandle(IntPtr, JniHandleOwnership) |
設定 Handle 屬性。 (繼承來源 Object) |
ToArray<T>() |
可將十六位 Unicode 字元序列轉換成特定字元集中位元組序列的引擎。 (繼承來源 Object) |
ToString() |
傳回物件的字串表示。 (繼承來源 Object) |
UnmappableCharacterAction() |
針對無法套用的字元錯誤,傳回此編碼器的目前動作。 |
UnregisterFromRuntime() |
可將十六位 Unicode 字元序列轉換成特定字元集中位元組序列的引擎。 (繼承來源 Object) |
Wait() |
讓目前的線程等到喚醒為止,通常是em <notified/em>或<em>interrupted</em>。>< (繼承來源 Object) |
Wait(Int64) |
讓目前的線程等到喚醒為止,通常是em <notified/em>或<em>interrupted</em>,或直到經過一定數量的實時為止。<> (繼承來源 Object) |
Wait(Int64, Int32) |
讓目前的線程等到喚醒為止,通常是em <notified/em>或<em>interrupted</em>,或直到經過一定數量的實時為止。<> (繼承來源 Object) |
明確介面實作
IJavaPeerable.Disposed() |
可將十六位 Unicode 字元序列轉換成特定字元集中位元組序列的引擎。 (繼承來源 Object) |
IJavaPeerable.DisposeUnlessReferenced() |
可將十六位 Unicode 字元序列轉換成特定字元集中位元組序列的引擎。 (繼承來源 Object) |
IJavaPeerable.Finalized() |
可將十六位 Unicode 字元序列轉換成特定字元集中位元組序列的引擎。 (繼承來源 Object) |
IJavaPeerable.JniManagedPeerState |
可將十六位 Unicode 字元序列轉換成特定字元集中位元組序列的引擎。 (繼承來源 Object) |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
可將十六位 Unicode 字元序列轉換成特定字元集中位元組序列的引擎。 (繼承來源 Object) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
可將十六位 Unicode 字元序列轉換成特定字元集中位元組序列的引擎。 (繼承來源 Object) |
IJavaPeerable.SetPeerReference(JniObjectReference) |
可將十六位 Unicode 字元序列轉換成特定字元集中位元組序列的引擎。 (繼承來源 Object) |
擴充方法
JavaCast<TResult>(IJavaObject) |
執行 Android 執行時間檢查的類型轉換。 |
JavaCast<TResult>(IJavaObject) |
可將十六位 Unicode 字元序列轉換成特定字元集中位元組序列的引擎。 |
GetJniTypeName(IJavaPeerable) |
可將十六位 Unicode 字元序列轉換成特定字元集中位元組序列的引擎。 |