語言

Charset 類別

定義

一種命名映射,連接十六位元 Unicode 程式碼單元與位元組序列。

[Android.Runtime.Register("java/nio/charset/Charset", DoNotGenerateAcw=true)]
public abstract class Charset : Java.Lang.Object, IDisposable, Java.Lang.IComparable
[<Android.Runtime.Register("java/nio/charset/Charset", DoNotGenerateAcw=true)>]
type Charset = class
    inherit Object
    interface IComparable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
繼承
屬性
實作

備註

一種命名映射,連接十六位元 Unicode 程式碼單元與位元組序列。 此類別定義了建立解碼器和編碼器的方法,以及擷取與字元集相關的各種名稱。 此類別的實例是不可變的。

此類別也定義靜態方法,用於測試特定字元集是否被支援、以名稱定位字元集實例,以及構建包含目前 Java 虛擬機中所有支援字元集的映射。 可透過類別中定義 java.nio.charset.spi.CharsetProvider 的服務提供者介面新增對新字元集的支援。

本類別中定義的所有方法都安全可由多個並行執行緒使用。

“charenc”><h2>字符集名稱/<h2>

字元集由以下字元組成的字串命名:

<UL>

<大> 寫字母 'A' 通過 'Z' ('&#92;u0041' 通過 '&#92;u005a'),

<li> 小寫字母 'a' 通過 'z' ('&#92;u0061' 通過 '&#92;u007a'),

<li> 數字通過 '0''9' ('&#92;u0030' 通過 '&#92;u0039'),

<li> 破折號字元 '-' ('&#92;u002d',nbsp;<小>連字號-MINUS</小>字號),

<li> 加號字元 '+' ('&#92;u002b', <小加>號</小>號),

<李> 時代人物 '.' ('&#92;u002e' <小句>點</小>寫),

<李> 冒號字':'('&#92;u003a',nbsp;<小>冒號/小<冒號>),以及

<李> 配樂角色 '_' ('&#92;u005f',nbsp;<小寫>LOW LINE</小>)。

</ul>

字元名稱必須以字母或數字開頭。 空字串並非合法的字元名稱。 字元名稱不區分大小寫;也就是說,在比較字元名稱時,格通常會被忽略。 字元集名稱通常遵循 RFC  所描述的慣例;2278: IANA 字元集登記程序http://www.ietf.org/rfc/rfc2278.txt。

每個角色集都有 一個典範名稱 ,也可能有一個或多個 別名。 典範名稱會透過 #name() name 此類別的方法回傳。 典範名稱依慣例通常使用大寫字母。 字元集的別名由該方法回傳 #aliases() aliases 。

「hn」>部分字集有 <i>歷史名稱</i>,以與先前版本的 Java 平台相容性而定義。 角色集的歷史名稱要麼是其正統名稱,要麼是其別名之一。 歷史名稱由 和 getEncoding() 類別的方法java.io.InputStreamReader#getEncoding InputStreamReader回傳java.io.OutputStreamWriter#getEncoding OutputStreamWriter。

「iana」>如果 IANA 字元集登錄http://www.iana.org/assignments/character-sets檔中列出的字元集被 Java 平台的實作支援,則其標準名稱必須是登錄檔中列出的名稱。 許多字元集在登錄檔中被賦予多個名稱,此時登錄檔會將其中一個名稱識別為 MIME 優先使用。 若一個字元集有多個登錄檔名稱,則其標準名稱必須是 MIME 偏好名稱,登錄檔中其他名稱必須是有效的別名。 若支援的字元集未列入 IANA 登錄檔,則其標準名稱必須以字串"X-""x-"或 開頭。

IANA 字元集登錄檔會隨時間改變,因此特定字元集的標準名稱和別名也可能隨時間改變。 為確保相容性,建議切勿移除字元集中的別名,且若字元集的典範名稱被更改,則將其先前的典範名稱改為別名。

<h2>標準字元集</h2>

「標準」>Java 平台的每個實作都必須支援以下標準字元集。 請參考你實作的釋出文件,看看是否支援其他字元集。 這些可選字元集的行為可能因實作而異。

<blockquote><table class=“striped” style=“width:80%”><caption style=“display:none”> 標準字元<描述/caption><thead><tr><th scope=“col” style=“text-align:left”>Charset</th><th scope =“col” style=“text-align:left”> Description</th></tr></thead><tbody><tr><th scope=“row” style=“vertical-align:top”>US-ASCII</th><td>七位元ASCII,又稱 ISO646-US、 Unicode 字元集<的基本拉丁區塊 / td></tr><tr><範圍=「row」style=“vertical-align:top”>ISO-8859-1&nbsp;&nbsp;</th><td>ISO 拉丁字母第一號,亦稱 ISO-LATIN-1</td></tr><tr th><scope=“row” style=“vertical-align:top”>UTF-8</th><td>八位元 UCS 轉換格式</td></tr><tr th><scope=“row” style=“vertical-align:top”>UTF-16BE</th><td>十六位元 UCS 轉換格式,大端位元組 order</td></tr><tr tr><th scope=“row” style=“vertical-align:top”>UTF-16LE</th><td>十六位元 UCS 轉換格式,小端元組 & nbsp;order</td></tr><tr tr><th scope=“row” style=“vertical-align:top”>UTF-16</th><td>十六位元 UCS 轉換格式,byte 順序可選的位元組順序標記/TD</TR><>/TBODY<>/TABLE</BLOCKQUOTE 識別><>

UTF-8字元集由 RFC  指定;2279http://www.ietf.org/rfc/rfc2279.txt;其基礎轉換格式於 Amendment  中規定;2 個 ISO 10646-1 也在 Unicode 標準http://www.unicode.org/unicode/standard/standard.html中有所描述。

UTF-16字元集由 RFC  規範;2781http://www.ietf.org/rfc/rfc2781.txt;其基礎轉換格式在 Amendment  中規定;其中1個ISO 10646-1 以及 Unicode 標準http://www.unicode.org/unicode/standard/standard.html中也有描述。

字 UTF-16 元集使用十六位元的量,因此對位元組順序很敏感。 在這些編碼中,串流的位元組順序可以用 Unicode 字元表示的初始'&#92;uFEFF'表示。 位元組順序標記的處理方式如下:

<UL>

<李>

解碼時, UTF-16BE 與 UTF-16LE 字元集會將初始位元組順序標記解讀為 <小>ZERO-WIDTH NON-BREAKING SPACE/<small>;編碼時則不寫位元組順序標記。

</李>

<李>

解碼時, UTF-16 字元組會將輸入串流開頭的位元組順序標記解釋為該位元組序,但若沒有位元組序標記,則預設為大端序;編碼時則使用大端序,並寫入大端序位元組序標記。

</李>

</ul>

無論如何,輸入序列第一個元素之後出現的位元組順序標記不會被省略,因為相同程式碼用於表示 <SMALL>ZERO-WIDTH NON-BREAKING SPACE/<small>。

Android 備註:Android 平台預設永遠是 UTF-8。

該 StandardCharsets 類別為每個標準字元定義常數。

<h2>術語</h2>

此類別名稱取自 RFC  中使用的術語;2278http://www.ietf.org/rfc/rfc2278.txt。 在該文件中, 字元集 被定義為一個或多個編碼字元集與字元編碼方案的組合。 (此定義令人混淆;其他軟體系統將 字元集 定義為 編碼字元集的同義詞。)

編碼字元集是抽象字元集合與整數集合之間的映射。 美國ASCII、ISO&NBSP;8859-1,JIS及nbsp;X 0201 和 Unicode 是編碼字元集的例子。

有些標準將 字元集 定義為一組抽象字元,沒有相應的編號。 字母表就是此類字元集的例子。 然而,字元集與編碼字元集之間的微妙區別在實務中很少被使用;前者已成為後者的簡稱,包括在 Java API 規範中。

字元編碼方案是一種將一個或多個編碼字元集與一組八位元組(八位元組)序列對應的方案。 UTF-8、UTF-16、ISO 2022 和 EUC 是字元編碼方案的例子。 編碼方案通常與特定的編碼字元集相關聯;例如,UTF-8 僅用於編碼 Unicode。 然而,有些方案與多個編碼字元集相關聯;例如,EUC 可用於編碼各種亞洲編碼字元集的字元。

當編碼字元集僅用於單一字元編碼方案時,對應的字元集通常會以該編碼字元集命名;否則,字元集通常會以編碼方案命名,並可能以其所支援的編碼字元集的所在地命名。 因此 US-ASCII ,既是編碼字元集的名稱,也是編碼該字元集的字元集名稱,而 EUC-JP 是編碼 JIS  字元集的名稱;X 0201,JIS X 0208,以及 JIS X 日語0212編碼字元集。

Java 程式語言的原生字元編碼為 UTF-16。 因此,Java 平台中的字元集定義了 16 位元 UTF-16 程式碼單元序列(即字元序列)與位元組序列之間的映射。

在 1.4 版本加入。

的 java.nio.charset.CharsetJava 檔。

此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。

建構函式

名稱 Description
Charset(IntPtr, JniHandleOwnership)

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

Charset(String, String[])

初始化一個以指定典範名稱與別名集合的新字元集。

屬性

名稱 Description
Class

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

(繼承來源 Object)
Handle

基礎Android實例的句柄。

(繼承來源 Object)
IsRegistered

說明該字元集是否已註冊於 IANA 字元集登錄。

JniIdentityHashCode

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

(繼承來源 Object)
JniManagedPeerState

一種命名映射,連接十六位元 Unicode 程式碼單元與位元組序列。

(繼承來源 JavaObject)
JniPeerMembers

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

PeerReference

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

(繼承來源 Object)
ThresholdClass

此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。

ThresholdType

此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。

方法

名稱 Description
Aliases()

回傳包含該字元別名的集合。

AvailableCharsets()

從典型字元集名稱到字元集物件構建一個排序映射。

CanEncode()

告訴這個字元集是否支援編碼。

Clone()

建立並傳回這個 對象的複本。

(繼承來源 Object)
CompareTo(Charset)

將此角色集與另一個角色集進行比較。

Construct(JniObjectReference, JniObjectReferenceOptions)

一種命名映射,連接十六位元 Unicode 程式碼單元與位元組序列。

(繼承來源 JavaObject)
Contains(Charset)

判斷該字元集是否包含給定字元集。

Decode(ByteBuffer)

方便的方法將此字元集中的位元組解碼成 Unicode 字元。

DefaultCharset()

回傳此 Java 虛擬機的預設字元集。

DisplayName()

回傳此字元集合的人類可讀名稱作為預設地點名稱。

DisplayName(Locale)

回傳該字元集合對指定地點的人類可讀名稱。

Dispose()

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

(繼承來源 Object)
Dispose(Boolean)

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

(繼承來源 Object)
DisposeUnlessReferenced()

一種命名映射,連接十六位元 Unicode 程式碼單元與位元組序列。

(繼承來源 JavaObject)
Encode(CharBuffer)

方便的方法將 Unicode 字元編碼成字元組。

Encode(String)

方便的方法將字串編碼成字元組。

Equals(Object)

判斷該物體是否等於另一個物體。

Equals(Object)

一種命名映射,連接十六位元 Unicode 程式碼單元與位元組序列。

(繼承來源 JavaObject)
ForName(String, Charset)

回傳一個已命名字元集的字元集物件。

ForName(String)

回傳一個已命名字元集的字元集物件。

GetHashCode()

計算這個字元集的雜湊碼。

IsSupported(String)

說明該已命名字元集是否被支援。

JavaFinalize()
已淘汰.

當垃圾收集決定不再參考物件時,垃圾收集行程在 物件上呼叫。

(繼承來源 Object)
Name()

回傳此字元的正典名稱。

NewDecoder()

為此字元組構建新解碼器。

NewEncoder()

為此字元集建構一個新的編碼器。

Notify()

喚醒正在等候此物件監視器的單一線程。

(繼承來源 Object)
NotifyAll()

喚醒正在等候此物件監視器的所有線程。

(繼承來源 Object)
SetHandle(IntPtr, JniHandleOwnership)

設定 Handle 屬性。

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

一種命名映射,連接十六位元 Unicode 程式碼單元與位元組序列。

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

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

(繼承來源 Object)
ToString()

回傳描述此字元集的字串。

UnregisterFromRuntime()

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

(繼承來源 Object)
Wait()

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

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

讓目前的線程等到喚醒為止,通常是因為 <em>notified</em> 或 <em>interrupted</em>,或直到經過一定數量的實時為止。

(繼承來源 Object)
Wait(Int64)

讓目前的線程等到喚醒為止,通常是因為 <em>notified</em> 或 <em>interrupted</em>,或直到經過一定數量的實時為止。

(繼承來源 Object)

明確介面實作

名稱 Description
IComparable.CompareTo(Object)

將此字元集合與另一個以典範名稱比較,忽略格。

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)
IJavaPeerable.UnregisterFromRuntime()

一種命名映射,連接十六位元 Unicode 程式碼單元與位元組序列。

擴充方法

名稱 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 端是否有效。

適用於