Charset 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
一種命名映射,連接十六位元 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' ('\u0041' 通過 '\u005a'),
<li> 小寫字母 'a' 通過 'z' ('\u0061' 通過 '\u007a'),
<li> 數字通過 '0''9' ('\u0030' 通過 '\u0039'),
<li> 破折號字元 '-' ('\u002d',nbsp;<小>連字號-MINUS</小>字號),
<li> 加號字元 '+' ('\u002b', <小加>號</小>號),
<李> 時代人物 '.' ('\u002e' <小句>點</小>寫),
<李> 冒號字':'('\u003a',nbsp;<小>冒號/小<冒號>),以及
<李> 配樂角色 '_' ('\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 </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 字元表示的初始'\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 |
傳回這個 |
| 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) |
取得實例 |
| JavaAs<TResult>(IJavaPeerable) |
試著強制 |
| JavaCast<TResult>(IJavaObject) |
執行 Android 執行時檢查型別轉換。 |
| JavaCast<TResult>(IJavaObject) |
一種命名映射,連接十六位元 Unicode 程式碼單元與位元組序列。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
試著強制 |