Share via


Charset 類別

定義

十六位 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
繼承
Charset
屬性
實作

備註

十六位 Unicode 程式代碼單位序列與位元組序列之間的具名對應。 這個類別會定義建立譯碼器和編碼器的方法,以及擷取與 charset 相關聯的各種名稱。 這個類別的實例是不可變的。

此類別也會定義靜態方法,以測試是否支援特定 charset、依名稱尋找 charset 實例,以及建構包含目前 Java 虛擬機中支援的每個 charset 的對應。 您可以透過 類別中 java.nio.charset.spi.CharsetProvider 定義的服務提供者介面來新增對新 charset 的支援。

此類別中定義的所有方法都可供多個並行線程使用。

“charenc”><h2>Charset names</h2>

Charset 是由由下列字元組成的字串來命名:

<ul>

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

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

<li> 透過 '0''9' (&'&#92;u0030' nbsp 的數位;透過 '&#92;u0039') ,

<li> 虛線字元 '-' ('&#92;u002d', <small>HYPHEN-MINUS</small>) ,

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

<li> 句號字元 '.' ('&#92;u002e', <small>FULL STOP</small>) ,

<li> 冒號字元 ':' ('&#92;u003a', <小型>冒號</小型>) 和

<li> 底線字元 '_' ('&#92;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&nbsp;&nbsp;/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 字元 '&#92;uFEFF'所表示的初始位元組順序標記表示。 位元組順序標記的處理方式如下:

<ul>

<li>

譯碼時, UTF-16BEUTF-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.CharsetJava 檔。

此頁面的部分是根據 所建立和共用的工作進行修改,並根據 2.5 屬性授權中所述的詞彙來使用。

建構函式

Charset(IntPtr, JniHandleOwnership)

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

Charset(String, String[])

使用指定的標準名稱和別名集,初始化新的 charset。

屬性

Class

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

(繼承來源 Object)
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 程式代碼單位序列與位元組序列之間的具名對應。

適用於