Charset 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
十六位 Unicode 程式代碼單位序列與位元組序列之間的具名對應。
[Android.Runtime.Register("java/nio/charset/Charset", DoNotGenerateAcw=true)]
public abstract class Charset : Java.Lang.Object, IDisposable, Java.Interop.IJavaPeerable, 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 程式代碼單位序列與位元組序列之間的具名對應。 這個類別會定義建立譯碼器和編碼器的方法,以及擷取與 charset 相關聯的各種名稱。 這個類別的實例是不可變的。
此類別也會定義靜態方法,以測試是否支援特定 charset、依名稱尋找 charset 實例,以及建構包含目前 Java 虛擬機中支援的每個 charset 的對應。 您可以透過 類別中 java.nio.charset.spi.CharsetProvider
定義的服務提供者介面來新增對新 charset 的支援。
此類別中定義的所有方法都可供多個並行線程使用。
“charenc”><h2>Charset names</h2>
Charset 是由由下列字元組成的字串來命名:
<ul>
<li> 透過 'Z'
('\u0041'
  的大寫字母'A'
;透過 '\u005a'
) ,
<li> 透過 (&'\u0061'
nbsp 的小寫字母'a'
'z'
;透過 '\u007a'
) ,
<li> 透過 '0'
'9'
(&'\u0030'
nbsp 的數位;透過 '\u0039'
) ,
<li> 虛線字元 '-'
('\u002d'
, <small>HYPHEN-MINUS</small>) ,
<li> 加號字元 '+'
('\u002b'
, <small>PLUS SIGN</small>) ,
<li> 句號字元 '.'
('\u002e'
, <small>FULL STOP</small>) ,
<li> 冒號字元 ':'
('\u003a'
, <小型>冒號</小型>) 和
<li> 底線字元 '_'
('\u005f'
, <小型>LOW LINE</small>) 。
</ul>
字元集名稱的開頭必須是字母或數位。 空字串不是合法的 charset 名稱。 字元集名稱不區分大小寫;也就是說,比較 charset 名稱時,一律會忽略大小寫。 Charset 名稱通常會遵循 RFC  中所述的慣例;2278: IANA Charset 註冊程式http://www.ietf.org/rfc/rfc2278.txt。
每個 charset 都有 標準名稱 ,也可能有一或多個 別名。 標準名稱是由 #name() name
這個類別的方法傳回。 標準名稱通常是依照慣例,通常是大寫。 方法會傳 #aliases() aliases
回 charset 的別名。
“hn”>部分 charset 具有 <i>歷程記錄名稱</i> ,其已定義以便與舊版 Java 平臺相容。 charset 的歷程記錄名稱是其標準名稱或其別名之一。 歷程記錄名稱是由 getEncoding()
和 java.io.OutputStreamWriter#getEncoding OutputStreamWriter
類別的方法java.io.InputStreamReader#getEncoding InputStreamReader
所傳回。
“iana”> 如果 Java 平台的實作支援 IANA Charset 登錄http://www.iana.org/assignments/character-sets 中列出的字元集,則其標準名稱必須是登錄中所列的名稱。 登錄中會提供多個名稱的字元集,在此情況下,登錄會將其中一個名稱識別為 MIME慣用。 如果 charset 有多個登錄名稱,則其標準名稱必須是 MIME 慣用的名稱,而且登錄中的其他名稱必須是有效的別名。 如果 IANA 登錄中未列出支援的 charset,則其標準名稱必須以其中一個字串 "X-"
或 "x-"
開頭。
IANA charset 登錄會隨著時間而變更,因此特定 charset 的正式名稱和別名也會隨著時間而變更。 為了確保相容性,建議您不要從 charset 中移除別名,而且如果 charset 的正式名稱已變更,則其先前的正式名稱會變成別名。
<h2>Standard charsets</h2>
「標準」>需要 Java 平臺的每個實作,才能支援下列標準字元集。 請參閱您的實作版本檔,以查看是否支援任何其他字元集。 這類選擇性字元集的行為在實作之間可能會有所不同。
<blockquote><table class=“striped” style=“width:80%”<>標題 style=“display:none”>Description of standard charsets</標題>< thead<>tr><th scope=“col” style=“text-align:left”>Charset</th><scope=“col” style=“text-align:left”>Description</th/tr/thead<>tbody><tr><>< th>< scope=“row” style=“vertical-align:top”>US-ASCII
</th><td>Seven 位 ASCII, a.k.a. ISO646-US
, a.k.a. Unicode 字元集</td/tr<>th><scope=“row” style=“vertical-align:top”><ISO-8859-1
/th><td><> ISO Latin Alphabet No. 1, a.k.a. ISO-LATIN-1
</td></tr><th><scope=“row” style=“vertical-align:top”UTF-8
></th td>Eight-bit UCS Transformation Format</td/tr tr>><<th scope=“row” style=“vertical-align:top”><UTF-16BE
/th><<>td><> Sixteen-bit UCS Transformation Format, big-endian byte order</td></tr><th><scope=“row” style=“vertical-align:top”><UTF-16LE
/th><td>Sixteen-bit UCS Transformation Format, little-endian byte order</td></tr><tr><th scope=“row” style=“vertical-align:top”>UTF-16
</th><td>Sixteen-bit UCS Transformation Format, byte 由選擇性位元節順序標記/td></tr<>/tbody></table></blockquote 所識別的順序<>
UTF-8
charset 是由 RFC  所指定;2279http://www.ietf.org/rfc/rfc2279.txt;轉換格式的依據是在增修條款  中指定;ISO  的 2 個;10646-1,也會在 Unicode 標準http://www.unicode.org/unicode/standard/standard.html中說明。
UTF-16
charset 是由 RFC  所指定;2781http://www.ietf.org/rfc/rfc2781.txt;轉換格式的依據是在增修條款  中指定;ISO  的 1 個;10646-1 和 也會在 Unicode 標準http://www.unicode.org/unicode/standard/standard.html中說明。
UTF-16
charset 會使用十六位數量,因此會區分位元節順序。 在這些編碼中,數據流的位元組順序可能會以 Unicode 字元 '\uFEFF'
所表示的初始位元組順序標記表示。 位元組順序標記的處理方式如下:
<ul>
<li>
譯碼時, UTF-16BE
和 UTF-16LE
字元集會將初始位元組順序標記解譯為 <小型>零寬度非中斷空格</小>;編碼時,它們不會寫入位元組順序標記。
</李>
<li>
譯碼時, UTF-16
charset 會解譯輸入數據流開頭的位元組順序標記,以指出數據流的位元組順序,但如果沒有位元組順序標記,則會默認為 big-endian;編碼時,它會使用位元節順序,並寫入大端位元組順序標記。
</李>
</ul>
在任何情況下,不會省略輸入序列第一個專案之後發生的位元組順序標記,因為相同的程式代碼是用來代表 <小型>零寬度非中斷空格</小>。
Android 附注:Android 平台預設值一律為 UTF-8。
類別 StandardCharsets
會定義每個標準字元集的常數。
<h2>術語</h2>
此類別的名稱取自 RFC  中使用的詞彙;2278http://www.ietf.org/rfc/rfc2278.txt. 在該檔中, charset 會定義為一或多個編碼字元集和字元編碼配置的組合。 (此定義令人困惑;有些其他軟體系統會將 charset 定義為 自動程式代碼字元集的同義字。)
自動程式代碼字元集是一組抽象字元與一組整數之間的對應。 US-ASCII,ISO 8859-1,JIS X 0201 和 Unicode 是自動程式代碼字元集的範例。
有些標準已定義 字元集 ,只是一組抽象字元,而不需要相關聯的指派編號。 字母是這類字元集的範例。 不過,在實務上很少使用 字元集 和 自動程式代碼字元集 之間的細微差異;前者已變成後者的簡短形式,包括 Java API 規格。
字元編碼配置是一或多個編碼字元集與一組八位位元組) 序列 (八位位元組之間的對應。 UTF-8、UTF-16、ISO 2022 和 EUC 是字元編碼配置的範例。 編碼配置通常與特定的編碼字元集相關聯;例如,UTF-8 只會用來編碼 Unicode。 不過,有些配置與多個自動程式碼字元集相關聯;例如,EUC 可用來編碼各種亞洲編碼字元集中的字元。
當自動程式代碼字元集以獨佔方式搭配單一字元編碼配置使用時,對應字元集通常會針對編碼字元集命名;否則,字元集通常會針對編碼配置命名,而且可能是其支援的自動程式代碼字元集地區設定。 因此 US-ASCII
,是編碼字元集和編碼它的 charset 名稱,而 EUC-JP
是編碼 JIS  的 charset 名稱;X 0201,JIS X 0208 和 JIS X 日文的 0212 編碼字元集。
Java 程式設計語言的原生字元編碼為UTF-16。 因此,Java 平臺中的 charset 會定義十六位 UTF-16 程式代碼單位序列 (之間的對應,也就是字元序列) 和位元組序列。
已在1.4中新增。
的 java.nio.charset.Charset
Java 檔。
此頁面的部分是根據 所建立和共用的工作進行修改,並根據 2.5 屬性授權中所述的詞彙來使用。
建構函式
Charset(IntPtr, JniHandleOwnership) |
建立 JNI 物件的 Managed 表示法時使用的建構函式;由運行時間呼叫。 |
Charset(String, String[]) |
使用指定的標準名稱和別名集,初始化新的 charset。 |
屬性
Class |
傳回這個 |
Handle |
基礎Android實例的句柄。 (繼承來源 Object) |
IsRegistered |
告知此 charset 是否已在 IANA Charset 登錄中註冊。 |
JniIdentityHashCode |
十六位 Unicode 程式代碼單位序列與位元組序列之間的具名對應。 (繼承來源 Object) |
JniPeerMembers |
十六位 Unicode 程式代碼單位序列與位元組序列之間的具名對應。 |
PeerReference |
十六位 Unicode 程式代碼單位序列與位元組序列之間的具名對應。 (繼承來源 Object) |
ThresholdClass |
此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。 |
ThresholdType |
此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。 |
方法
Aliases() |
傳回包含此 charset 別名的集合。 |
AvailableCharsets() |
從標準字元集名稱到 charset 物件建構已排序的對應。 |
CanEncode() |
指出這個 charset 是否支援編碼。 |
Clone() |
建立並傳回這個 對象的複本。 (繼承來源 Object) |
CompareTo(Charset) |
比較此 charset 與另一個字元集。 |
Contains(Charset) |
指出這個 charset 是否包含指定的 charset。 |
Decode(ByteBuffer) |
將這個 charset 中的位元組譯碼為 Unicode 字元的便利方法。 |
DefaultCharset() |
傳回這個 Java 虛擬機的預設 charset。 |
DisplayName() |
傳回預設地區設定的這個 charset 人類可讀取名稱。 |
DisplayName(Locale) |
傳回指定地區設定的這個字元集人類可讀取名稱。 |
Dispose() |
十六位 Unicode 程式代碼單位序列與位元組序列之間的具名對應。 (繼承來源 Object) |
Dispose(Boolean) |
十六位 Unicode 程式代碼單位序列與位元組序列之間的具名對應。 (繼承來源 Object) |
Encode(CharBuffer) |
將 Unicode 字元編碼為這個 charset 中位元組的便利方法。 |
Encode(String) |
將字串編碼為這個 charset 中位元組的便利方法。 |
Equals(Object) |
告知這個物件是否等於另一個物件。 |
ForName(String) |
傳回具名 charset 的 charset 物件。 |
GetHashCode() |
計算這個 charset 的哈希碼。 |
IsSupported(String) |
指出是否支援具名 charset。 |
JavaFinalize() |
當垃圾收集判斷物件不再參考物件時,垃圾收集行程會在物件上呼叫。 (繼承來源 Object) |
Name() |
傳回此字元集的正式名稱。 |
NewDecoder() |
建構這個 charset 的新譯碼器。 |
NewEncoder() |
建構這個 charset 的新編碼器。 |
Notify() |
喚醒正在等候此物件監視器的單一線程。 (繼承來源 Object) |
NotifyAll() |
喚醒正在等候此物件監視器的所有線程。 (繼承來源 Object) |
SetHandle(IntPtr, JniHandleOwnership) |
設定 Handle 屬性。 (繼承來源 Object) |
ToArray<T>() |
十六位 Unicode 程式代碼單位序列與位元組序列之間的具名對應。 (繼承來源 Object) |
ToString() |
傳回描述此字元集的字串。 |
UnregisterFromRuntime() |
十六位 Unicode 程式代碼單位序列與位元組序列之間的具名對應。 (繼承來源 Object) |
Wait() |
讓目前的線程等到喚醒為止,通常是em <notified/em>或<em>interrupted</em>。>< (繼承來源 Object) |
Wait(Int64) |
讓目前的線程等到喚醒為止,通常是em <notified/em>或<em>interrupted</em>,或直到經過一定數量的實時為止。<> (繼承來源 Object) |
Wait(Int64, Int32) |
讓目前的線程等到喚醒為止,通常是em <notified/em>或<em>interrupted</em>,或直到經過一定數量的實時為止。<> (繼承來源 Object) |
明確介面實作
IComparable.CompareTo(Object) |
十六位 Unicode 程式代碼單位序列與位元組序列之間的具名對應。 |
IJavaPeerable.Disposed() |
十六位 Unicode 程式代碼單位序列與位元組序列之間的具名對應。 (繼承來源 Object) |
IJavaPeerable.DisposeUnlessReferenced() |
十六位 Unicode 程式代碼單位序列與位元組序列之間的具名對應。 (繼承來源 Object) |
IJavaPeerable.Finalized() |
十六位 Unicode 程式代碼單位序列與位元組序列之間的具名對應。 (繼承來源 Object) |
IJavaPeerable.JniManagedPeerState |
十六位 Unicode 程式代碼單位序列與位元組序列之間的具名對應。 (繼承來源 Object) |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
十六位 Unicode 程式代碼單位序列與位元組序列之間的具名對應。 (繼承來源 Object) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
十六位 Unicode 程式代碼單位序列與位元組序列之間的具名對應。 (繼承來源 Object) |
IJavaPeerable.SetPeerReference(JniObjectReference) |
十六位 Unicode 程式代碼單位序列與位元組序列之間的具名對應。 (繼承來源 Object) |
擴充方法
JavaCast<TResult>(IJavaObject) |
執行 Android 執行時間檢查的類型轉換。 |
JavaCast<TResult>(IJavaObject) |
十六位 Unicode 程式代碼單位序列與位元組序列之間的具名對應。 |
GetJniTypeName(IJavaPeerable) |
十六位 Unicode 程式代碼單位序列與位元組序列之間的具名對應。 |