語言

CharsetDecoder 類別

定義

一個能將特定字元組序列轉換為十六位元 Unicode 字元序列的引擎。

[Android.Runtime.Register("java/nio/charset/CharsetDecoder", DoNotGenerateAcw=true)]
public abstract class CharsetDecoder : Java.Lang.Object
[<Android.Runtime.Register("java/nio/charset/CharsetDecoder", DoNotGenerateAcw=true)>]
type CharsetDecoder = class
    inherit Object
繼承
CharsetDecoder
屬性

備註

一個能將特定字元組序列轉換為十六位元 Unicode 字元序列的引擎。

「步數」>

輸入位元組序列提供於位元組緩衝區或一系列此類緩衝區中。 輸出字元序列會寫入一個字元緩衝區或一系列此類緩衝區。 解碼器應始終透過以下方法呼叫序列來使用,以下稱為 解碼操作:

<進攻線>

<李>

除非之前未曾使用過,否則請透過該 #reset reset 方法重置解碼器;

</李>

<李>

呼叫#decode decode方法零次或多次,只要還有額外輸入可用,並傳遞falseendOfInput參數並填滿輸入緩衝區,並在呼叫間清除輸出緩衝區;

</李>

<李>

最後一次呼叫該 #decode decode 方法,通過 true 參數 endOfInput ;然後

</李>

<李>

呼叫該 #flush flush 方法,讓解碼器能將任何內部狀態沖刷到輸出緩衝區。

</李>

</ol>

每次呼叫該 #decode decode 方法都會從輸入緩衝區解碼盡可能多的位元組,並將產生的字元寫入輸出緩衝區。 當需要更多輸入、輸出緩衝區空間不足,或發生解碼錯誤時,該 #decode decode 方法會回傳。 每次都會回傳一個 CoderResult 物件來描述終止的原因。 呼叫者可以檢查此物件並填充輸入緩衝區、清除輸出緩衝區,或嘗試從解碼錯誤中恢復,視情況而定,然後再嘗試。

「CE」>

解碼錯誤大致有兩種類型。 如果輸入位元組序列對此字元集不合法,則該輸入被視為 格式錯誤。 如果輸入的位元組序列是合法的,但無法映射到有效的 Unicode 字元,則遇到 了無法映射的字元 。

「凱」>

解碼錯誤的處理方式取決於該類型錯誤所請求的動作,而該動作由該 CodingErrorAction 類別的實例描述。 可能的錯誤操作包括:CodingErrorAction#IGNORE 忽略錯誤輸入、CodingErrorAction#REPORT 透過回傳 CoderResult 物件向呼叫者回報錯誤,或 CodingErrorAction#REPLACE 替換錯誤輸入為替換字串的當前值。 替代

具有初始值 "&#92;uFFFD";

其值可透過該 #replaceWith(java.lang.String) replaceWith 方法進行變更。

對於輸入錯誤和無法映射字元錯誤的預設動作是 CodingErrorAction#REPORT 回報它們。 錯誤輸入動作可透過 #onMalformedInput(CodingErrorAction) onMalformedInput 此方法變更;不可映射字元動作可透過該 #onUnmappableCharacter(CodingErrorAction) onUnmappableCharacter 方法更改。

此類別設計用來處理解碼過程中的許多細節,包括錯誤動作的實作。 針對特定字元集的解碼器,是該類別的具體子類,只需實作 #decodeLoop decodeLoop 抽象方法,該方法封裝了基本的解碼迴圈。 維持內部狀態的子類別也應該覆蓋 #implFlush implFlush 和 #implReset implReset 方法。

此類別的實例不適合多個並行執行緒使用。

在 1.4 版本加入。

Java 文件 java.nio.charset.CharsetDecoder。

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

建構函式

名稱 Description
CharsetDecoder(Charset, Single, Single)

初始化一個新的解碼器。

CharsetDecoder(IntPtr, JniHandleOwnership)

用於建立 JNI 物件受管理表示的建構器;由執行時呼叫。

屬性

名稱 Description
Class

回傳此 Object的執行時類別。

(繼承來源 Object)
Handle

底層 Android 實例的帳號。

(繼承來源 Object)
IsAutoDetecting

判斷此解碼器是否實作自動偵測字元集。

IsCharsetDetected

判斷解碼器是否已偵測到角色集與nbsp; (可選操作)。

JniIdentityHashCode

取得由互通執行時指派給此 Java 對等端的身份雜湊碼。

(繼承來源 Object)
JniManagedPeerState

一個能將特定字元組序列轉換為十六位元 Unicode 字元序列的引擎。

(繼承來源 JavaObject)
JniPeerMembers

取得用於調用此 Java 節點成員的 JNI 元資料。

PeerReference

取得這個 Java 節點的 JNI 物件參考。

(繼承來源 Object)
ThresholdClass

此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。

ThresholdType

此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。

方法

名稱 Description
AverageCharsPerByte()

回傳每個輸入位元組將產生的平均字元數。

Charset()

回傳創建此解碼器的字元集。

Clone()

建立並回傳此物件的副本。

(繼承來源 Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

一個能將特定字元組序列轉換為十六位元 Unicode 字元序列的引擎。

(繼承來源 JavaObject)
Decode(ByteBuffer, CharBuffer, Boolean)

從給定的輸入緩衝區解碼盡可能多的位元組,並將結果寫入給定的輸出緩衝區。

Decode(ByteBuffer)

方便方法,將單一輸入位元組緩衝區的剩餘內容解碼成新分配的字元緩衝區。

DecodeLoop(ByteBuffer, CharBuffer)

將一個或多個位元組解碼為一個或多個字元。

DetectedCharset()

擷取由解碼器偵測到的字元集,nbsp; (可選操作)。

Dispose()

釋放該 Java 節點所持有的資源。

(繼承來源 Object)
Dispose(Boolean)

釋放該 Java 節點所持有的資源。

(繼承來源 Object)
DisposeUnlessReferenced()

一個能將特定字元組序列轉換為十六位元 Unicode 字元序列的引擎。

(繼承來源 JavaObject)
Equals(Object)

一個能將特定字元組序列轉換為十六位元 Unicode 字元序列的引擎。

(繼承來源 JavaObject)
Equals(Object)

表示是否有其他物體「等同」於此物。

(繼承來源 Object)
Flush(CharBuffer)

沖掉這個解碼器。

GetHashCode()

回傳物件的雜湊碼值。

(繼承來源 Object)
ImplFlush(CharBuffer)

沖掉這個解碼器。

ImplOnMalformedInput(CodingErrorAction)

報告此解碼器的輸入動作變異。

ImplOnUnmappableCharacter(CodingErrorAction)

回報此解碼器的不可映射字元動作變更。

ImplReplaceWith(String)

報告此解碼器的替換值變更。

ImplReset()

重置此解碼器,清除任何特定字元集的內部狀態。

JavaFinalize()
已淘汰.

當垃圾回收判定該物件不再有相關參考時,由垃圾回收器呼叫。

(繼承來源 Object)
MalformedInputAction()

回傳此解碼器當前處理錯誤輸入錯誤的動作。

MaxCharsPerByte()

回傳每個輸入位元組將產生的最大字元數。

Notify()

喚醒一個正在該物件監視器上等待的執行緒。

(繼承來源 Object)
NotifyAll()

喚醒所有等待該物件監視器的執行緒。

(繼承來源 Object)
OnMalformedInput(CodingErrorAction)

改變此解碼器對錯誤輸入錯誤的動作。

OnUnmappableCharacter(CodingErrorAction)

針對無法映射的字元錯誤,改變此解碼器的動作。

Replacement()

回傳此解碼器的替換值。

ReplaceWith(String)

改變這個解碼器的替換值。

Reset()

重置此解碼器,清除任何內部狀態。

SetHandle(IntPtr, JniHandleOwnership)

設定 Handle 屬性。

(繼承來源 Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

一個能將特定字元組序列轉換為十六位元 Unicode 字元序列的引擎。

(繼承來源 JavaObject)
ToArray<T>()

從這個 Java 陣列包裝器建立一個受管理陣列。

(繼承來源 Object)
ToString()

回傳物件的字串表示。

(繼承來源 Object)
UnmappableCharacterAction()

對於無法映射字元錯誤,回傳此解碼器目前的動作。

UnregisterFromRuntime()

將此 Java 節點從互通執行時中取消註冊。

(繼承來源 Object)
Wait()

導致目前執行緒等待被喚醒,通常是透過 <em>通知</><em 或 em>中斷</em> 來喚醒。

(繼承來源 Object)
Wait(Int64, Int32)

會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。

(繼承來源 Object)
Wait(Int64)

會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</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)

取得實例 self類型的 JNI 名稱。

JavaAs<TResult>(IJavaPeerable)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

JavaCast<TResult>(IJavaObject)

執行 Android 執行時檢查型別轉換。

JavaCast<TResult>(IJavaObject)

一個能將特定字元組序列轉換為十六位元 Unicode 字元序列的引擎。

TryJavaCast<TResult>(IJavaPeerable, TResult)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

適用於