CharsetDecoder 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
一個能將特定字元組序列轉換為十六位元 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
- 繼承
- 屬性
備註
一個能將特定字元組序列轉換為十六位元 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 替換錯誤輸入為替換字串的當前值。 替代
具有初始值 "\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 |
回傳此 |
| 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) |
取得實例 |
| JavaAs<TResult>(IJavaPeerable) |
試著強制 |
| JavaCast<TResult>(IJavaObject) |
執行 Android 執行時檢查型別轉換。 |
| JavaCast<TResult>(IJavaObject) |
一個能將特定字元組序列轉換為十六位元 Unicode 字元序列的引擎。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
試著強制 |