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”>
輸入字元序列是在字元緩衝區或一系列這類緩衝區中提供。 輸出位元組序列會寫入位元組緩衝區或一系列這類緩衝區。 一律應該使用編碼器,方法是進行下列方法調用序列,以下簡稱 編碼作業:
<老>
<李>
除非之前尚未使用編碼器,否則請透過 #reset reset 方法重設編碼器;
</李>
<李>
#encode encode叫用方法零次或多次,只要有其他輸入可用,傳遞false自endOfInput變數並填入輸入緩衝區,並在調用之間排清輸出緩衝區;
</李>
<李>
#encode encode叫用方法最後一次,傳遞true自endOfInput變數;然後
</李>
<李>
#flush flush叫用 方法,讓編碼器可以將任何內部狀態排清至輸出緩衝區。
</李>
</老>
方法的每個調用 #encode encode 都會盡可能從輸入緩衝區編碼任意數目的字元,並將產生的位元組寫入輸出緩衝區。 當 #encode encode 需要更多輸入、輸出緩衝區中沒有足夠的空間,或發生編碼錯誤時,方法會傳回 。 在每個情況下,都會 CoderResult 傳回 物件來描述終止的原因。 叫用程式可以檢查此物件並填入輸入緩衝區、排清輸出緩衝區,或視需要嘗試從編碼錯誤中復原,然後再試一次。
“ce”>
編碼錯誤的一般類型有兩種。 如果輸入字元序列不是合法的十六位 Unicode 序列,則輸入會被視為 格式不正確。 如果輸入字元序列合法,但無法對應至指定字元集中的有效位元組序列,則 遇到無法套用的字元 。
“cae”>
編碼錯誤處理方式取決於針對該錯誤類型所要求的動作,而該動作是由 類別的 CodingErrorAction 實例所描述。 可能的錯誤動作是,CodeErrorAction#IGNORE 忽略錯誤的輸入,CodeErrorAction#REPORT 會透過傳 CoderResult 回的物件向叫用者報告錯誤,或 CodeErrorAction#REPLACE 將錯誤的輸入取代為取代位元組陣列的目前值。 取代專案
一開始會設定為編碼器的預設取代專案,通常(但不一定)具有初始值 { (byte)'?' };
其值可能透過 #replaceWith(byte[]) replaceWith 方法變更。
格式不正確輸入和無法套用字元錯誤的默認動作是將錯誤報告給 CodeErrorAction#REPORT。 格式錯誤的輸入錯誤動作可以透過 #onMalformedInput(CodingErrorAction) onMalformedInput 方法變更;無法套用的字元動作可以透過 #onUnmappableCharacter(CodingErrorAction) onUnmappableCharacter 方法變更。
此類別的設計目的是要處理編碼程式的許多詳細數據,包括錯誤動作的實作。 特定 charset 的編碼器,這是這個類別的具體子類別,只需要實作抽象 #encodeLoop encodeLoop 方法,其會封裝基本編碼迴圈。 維護內部狀態的子類別應該另外覆寫 #implFlush implFlush 和 #implReset implReset 方法。
這個類別的實例無法安全供多個並行線程使用。
已在1.4中新增。
的 java.nio.charset.CharsetEncoderJava 檔。
此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。
建構函式
| 名稱 | Description |
|---|---|
| CharsetEncoder(Charset, Single, Single, Byte[]) |
初始化新的編碼器。 |
| CharsetEncoder(Charset, Single, Single) |
初始化新的編碼器。 |
| CharsetEncoder(IntPtr, JniHandleOwnership) |
建立 JNI 物件的 Managed 表示法時使用的建構函式;由運行時間呼叫。 |
屬性
| 名稱 | Description |
|---|---|
| Class |
傳回這個 |
| Handle |
基礎Android實例的句柄。 (繼承來源 Object) |
| JniIdentityHashCode |
取得由互通執行時指派給此 Java 對等端的身份雜湊碼。 (繼承來源 Object) |
| JniManagedPeerState |
可將十六位 Unicode 字元序列轉換成特定字元集中位元組序列的引擎。 (繼承來源 JavaObject) |
| JniPeerMembers |
取得用於調用此 Java 節點成員的 JNI 元資料。 |
| PeerReference |
取得這個 Java 節點的 JNI 物件參考。 (繼承來源 Object) |
| ThresholdClass |
此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。 |
| ThresholdType |
此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。 |
方法
| 名稱 | Description |
|---|---|
| AverageBytesPerChar() |
傳回將針對每個輸入字元所產生的平均位元組數目。 |
| CanEncode(Char) |
指出此編碼器是否可以編碼指定的字元。 |
| CanEncode(ICharSequence) |
指出此編碼器是否可以編碼指定的字元序列。 |
| CanEncode(String) |
指出此編碼器是否可以編碼指定的字元序列。 |
| Charset() |
傳回建立此編碼器的字元集。 |
| Clone() |
建立並傳回這個 對象的複本。 (繼承來源 Object) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
可將十六位 Unicode 字元序列轉換成特定字元集中位元組序列的引擎。 (繼承來源 JavaObject) |
| Dispose() |
釋放該 Java 節點所持有的資源。 (繼承來源 Object) |
| Dispose(Boolean) |
釋放該 Java 節點所持有的資源。 (繼承來源 Object) |
| DisposeUnlessReferenced() |
可將十六位 Unicode 字元序列轉換成特定字元集中位元組序列的引擎。 (繼承來源 JavaObject) |
| Encode(CharBuffer, ByteBuffer, Boolean) |
從指定的輸入緩衝區編碼任意數目的字元,並將結果寫入指定的輸出緩衝區。 |
| Encode(CharBuffer) |
將單一輸入字元緩衝區的其餘內容編碼為新配置的位元組緩衝區的便利方法。 |
| EncodeLoop(CharBuffer, ByteBuffer) |
將一或多個字元編碼成一或多個字節。 |
| Equals(Object) |
可將十六位 Unicode 字元序列轉換成特定字元集中位元組序列的引擎。 (繼承來源 JavaObject) |
| 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) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
可將十六位 Unicode 字元序列轉換成特定字元集中位元組序列的引擎。 (繼承來源 JavaObject) |
| ToArray<T>() |
從這個 Java 陣列包裝器建立一個受管理陣列。 (繼承來源 Object) |
| ToString() |
傳回物件的字串表示。 (繼承來源 Object) |
| UnmappableCharacterAction() |
傳回此編碼器的目前動作,以取得無法套用的字元錯誤。 |
| UnregisterFromRuntime() |
將此 Java 節點從互通執行時中取消註冊。 (繼承來源 Object) |
| Wait() |
讓目前線程等候直到喚醒為止,通常是藉由em <notified/em>或<em>interrupted</em> 來喚醒它。<> (繼承來源 Object) |
| Wait(Int64, Int32) |
讓目前的線程等到喚醒為止,通常是因為 <em>notified</em> 或 <em>interrupted</em>,或直到經過一定數量的實時為止。 (繼承來源 Object) |
| Wait(Int64) |
讓目前的線程等到喚醒為止,通常是因為 <em>notified</em> 或 <em>interrupted</em>,或直到經過一定數量的實時為止。 (繼承來源 Object) |
明確介面實作
| 名稱 | Description |
|---|---|
| IJavaPeerable.Disposed() |
可將十六位 Unicode 字元序列轉換成特定字元集中位元組序列的引擎。 (繼承來源 JavaObject) |
| IJavaPeerable.Finalized() |
可將十六位 Unicode 字元序列轉換成特定字元集中位元組序列的引擎。 (繼承來源 JavaObject) |
| IJavaPeerable.JniObjectReferenceControlBlock |
可將十六位 Unicode 字元序列轉換成特定字元集中位元組序列的引擎。 (繼承來源 JavaObject) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
可將十六位 Unicode 字元序列轉換成特定字元集中位元組序列的引擎。 (繼承來源 JavaObject) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
可將十六位 Unicode 字元序列轉換成特定字元集中位元組序列的引擎。 (繼承來源 JavaObject) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
可將十六位 Unicode 字元序列轉換成特定字元集中位元組序列的引擎。 (繼承來源 JavaObject) |
擴充方法
| 名稱 | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
取得實例 |
| JavaAs<TResult>(IJavaPeerable) |
試著強制 |
| JavaCast<TResult>(IJavaObject) |
執行 Android 執行時間檢查的類型轉換。 |
| JavaCast<TResult>(IJavaObject) |
可將十六位 Unicode 字元序列轉換成特定字元集中位元組序列的引擎。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
試著強制 |