Share via


CharsetEncoder 類別

定義

可將十六位 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
繼承
CharsetEncoder
屬性

備註

可將十六位 Unicode 字元序列轉換成特定字元集中位元組序列的引擎。

“steps”>

輸入字元序列是在字元緩衝區或一系列這類緩衝區中提供。 輸出位元組序列會寫入位元組緩衝區或一系列這類緩衝區。 編碼器應該一律使用,方法是進行下列方法調用序列,稱為 編碼作業

<老>

<li>

除非之前尚未使用編碼器,否則請透過 #reset reset 方法重設編碼器;

</李>

<li>

#encode encode只要有其他輸入可用,請叫用方法零次或多次,傳遞 falseendOfInput變數並填入輸入緩衝區,並在調用之間排清輸出緩衝區;

</李>

<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.CharsetEncoderJava 檔。

此頁面的部分是根據 所建立和共用的工作進行修改,並根據 2.5 屬性授權中所述的詞彙來使用。

建構函式

CharsetEncoder(Charset, Single, Single)

初始化新的編碼器。

CharsetEncoder(Charset, Single, Single, Byte[])

初始化新的編碼器。

CharsetEncoder(IntPtr, JniHandleOwnership)

建立 JNI 物件的 Managed 表示法時使用的建構函式;由運行時間呼叫。

屬性

Class

傳回這個 Object的運行時間類別。

(繼承來源 Object)
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 字元序列轉換成特定字元集中位元組序列的引擎。

適用於