Charset Klasse

Definition

Eine benannte Zuordnung zwischen Sequenzen aus sechzehn Bit-Unicode-Codeeinheiten und Bytesequenzen.

[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
Vererbung
Charset
Attribute
Implementiert

Hinweise

Eine benannte Zuordnung zwischen Sequenzen von Unicode-Codeeinheiten von sechzehn Bit und Sequenzen von Bytes. Diese Klasse definiert Methoden zum Erstellen von Decodern und Encodern und zum Abrufen der verschiedenen Namen, die einem Zeichensatz zugeordnet sind. Instanzen dieser Klasse sind unveränderlich.

Diese Klasse definiert auch statische Methoden zum Testen, ob ein bestimmter Zeichensatz unterstützt wird, zum Suchen von Charsetinstanzen nach Namen und zum Erstellen einer Zuordnung, die jedes Charset enthält, für das auf dem aktuellen virtuellen Java-Computer Unterstützung verfügbar ist. Unterstützung für neue Zeichensätze kann über die in der java.nio.charset.spi.CharsetProvider -Klasse definierte Dienstanbieterschnittstelle hinzugefügt werden.

Alle in dieser Klasse definierten Methoden sind für die Verwendung durch mehrere gleichzeitige Threads sicher.

"charenc"><h2>Charsetnamen</h2>

Zeichensätze werden durch Zeichenfolgen benannt, die aus den folgenden Zeichen bestehen:

<ul>

<li> Großbuchstaben 'A' durch 'Z' ('&#92;u0041'  durch '&#92;u005a'),

<li> Die Kleinbuchstaben 'a' durch 'z' ('&#92;u0061'  durch '&#92;u007a'),

<li> Die Ziffern '0' durch '9' ('&#92;u0030'  durch '&#92;u0039'),

<li> Das Bindestrichzeichen '-' ('&#92;u002d', <kleiner>BINDESTRICH-MINUS</klein>),

<li> Das Pluszeichen '+' ('&#92;u002b', <small>PLUS-ZEICHEN</klein>),

<li> Das Periodenzeichen '.' ('&#92;u002e', <klein>VOLLSTOPP</klein>),

<li> Das Doppelpunktzeichen ':' ('&#92;u003a', <small>COLON</small>), und

<li> Das Unterstrichzeichen '_' ('&#92;u005f', <kleine>LOW  LINIE</klein>).

</ul>

Ein Zeichensatzname muss entweder mit einem Buchstaben oder einer Ziffer beginnen. Die leere Zeichenfolge ist kein rechtlicher Zeichensatzname. Bei Zeichensatznamen wird die Groß-/Kleinschreibung nicht beachtet. Das heißt, die Groß-/Kleinschreibung wird beim Vergleich von Zeichensatznamen immer ignoriert. Zeichensatznamen folgen im Allgemeinen den Konventionen, die in RFC  dokumentiert sind; 2278:  Registrierungsverfahrenhttp://www.ietf.org/rfc/rfc2278.txt für IANA-Zeichensätze.

Jedes Zeichenset hat einen kanonischen Namen und kann auch einen oder mehrere Aliase aufweisen. Der kanonische Name wird von der #name() name Methode dieser Klasse zurückgegeben. Kanonische Namen werden üblicherweise in Großbuchstaben verwendet. Die Aliase eines Zeichensatzes werden von der #aliases() aliases -Methode zurückgegeben.

"hn">Einige Zeichensätze weisen einen <i>historischen Namen</i> auf, der für die Kompatibilität mit früheren Versionen der Java-Plattform definiert ist. Der historische Name eines Zeichensatzes ist entweder der kanonische Name oder einer seiner Aliase. Der historische Name wird von den getEncoding() Methoden der java.io.InputStreamReader#getEncoding InputStreamReader - und java.io.OutputStreamWriter#getEncoding OutputStreamWriter -Klasse zurückgegeben.

"iana"> Wenn ein in der IANA Charset Registryhttp://www.iana.org/assignments/character-sets aufgeführter Zeichensatz von einer Implementierung der Java-Plattform unterstützt wird, muss sein kanonischer Name der in der Registrierung aufgeführte Name sein. Viele Zeichensätze erhalten mehr als einen Namen in der Registrierung. In diesem Fall identifiziert die Registrierung einen der Namen als MIME-bevorzugt. Wenn ein Zeichensatz über mehrere Registrierungsnamen verfügt, muss sein kanonischer Name der MIME-bevorzugte Name sein, und die anderen Namen in der Registrierung müssen gültige Aliase sein. Wenn ein unterstütztes Zeichenset nicht in der IANA-Registrierung aufgeführt ist, muss sein kanonischer Name mit einer der Zeichenfolgen "X-" oder "x-"beginnen.

Die IANA-Zeichensatzregistrierung ändert sich im Laufe der Zeit, sodass sich auch der kanonische Name und die Aliase eines bestimmten Zeichensatzes im Laufe der Zeit ändern können. Um die Kompatibilität zu gewährleisten, wird empfohlen, dass kein Alias aus einem Zeichensatz entfernt wird, und dass, wenn der kanonische Name eines Zeichensatzes geändert wird, der vorherige kanonische Name in einen Alias umgewandelt wird.

<h2>Standardzeichensätze</h2>

"standard">Jede Implementierung der Java-Plattform ist erforderlich, um die folgenden Standardzeichensätze zu unterstützen. Lesen Sie die Releasedokumentation für Ihre Implementierung, um zu sehen, ob andere Zeichensätze unterstützt werden. Das Verhalten solcher optionalen Zeichensätze kann sich von Implementierungen unterscheiden.

<blockquote><table class="striped" style="width:80%"><Untertitel style="display:none">Description of standard charsets</Untertitel<> 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>Seven-Bit ASCII, a.k.a. ISO646-US, a.k.a. der standardlateinische Block des Unicode-Zeichensatzes</td></tr><tr tr><th scope="row" style="vertical-align:top"<ISO-8859-1&nbsp;&nbsp;>/th><td>ISO Latin Alphabet Nr. 1, a.k.a. ISO-LATIN-1</td></tr><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><tr tr><th scope="row" style="vertical-align:top">UTF-16LE</th><td>sixteen-bit UCS Transformation Format, little-endian byte  order</td></tr><tr tr><th scope="row" style="vertical-align:top">UTF-16</th><td>Sixteen-Bit UCS Transformation Format, Byte  Durch eine optionale Bytereihenfolge mark/td></tr<>/tbody></table></blockquote identifizierte Reihenfolge<>

Das UTF-8 Zeichenset wird durch RFC  angegeben; 2279http://www.ietf.org/rfc/rfc2279.txt; das Transformationsformat, auf dem sie basiert, ist in Änderungsantrag  angegeben; 2 der ISO  10646-1 und wird auch im Unicode-Standardhttp://www.unicode.org/unicode/standard/standard.html beschrieben.

Die UTF-16 Zeichensätze werden von RFC  angegeben; 2781http://www.ietf.org/rfc/rfc2781.txt; die Transformationsformate, auf denen sie basieren, sind in Änderungsantrag  angegeben; 1 der ISO  10646-1 und werden auch im Unicode-Standardhttp://www.unicode.org/unicode/standard/standard.html beschrieben.

Die UTF-16 Zeichensätze verwenden Sechzehn-Bit-Mengen und sind daher empfindlich auf Bytereihenfolge. In diesen Codierungen kann die Bytereihenfolge eines Datenstroms durch eine anfängliche Bytereihenfolgenmarkierung angegeben werden, die durch das Unicode-Zeichen '&#92;uFEFF'dargestellt wird. Bytereihenfolgemarken werden wie folgt behandelt:

<ul>

<Li>

Beim Decodieren interpretieren die Zeichensets und die UTF-16BE Zeichensätze die anfänglichen Bytereihenfolgen als <kleine>NULL-BREITE NON-BREAKING SPACE</small>. Bei der Codierung schreiben sie keine BytereihenfolgemarkenUTF-16LE.

</Li>

<Li>

Beim Decodieren interpretiert das UTF-16 Zeichenset die Bytereihenfolgenmarkierung am Anfang des Eingabedatenstroms, um die Bytereihenfolge des Datenstroms anzugeben, wird jedoch standardmäßig auf big-endian festgelegt, wenn keine Bytereihenfolgenmarkierung vorhanden ist. Bei der Codierung verwendet es big-endian Bytereihenfolge und schreibt eine Big-Endian-Bytereihenfolge.

</Li>

</ul>

In jedem Fall werden Bytereihenfolgemarken, die nach dem ersten Element einer Eingabesequenz auftreten, nicht weggelassen, da der gleiche Code verwendet wird, um kleine>NULL-WIDTH NON-BREAKING SPACE</small> darzustellen<.

Android-Hinweis: Die Android-Plattform ist standardmäßig immer UTF-8.

Die StandardCharsets -Klasse definiert Konstanten für die einzelnen Standardzeichensätze.

<h2>Terminologie</h2>

Der Name dieser Klasse stammt aus den Begriffen, die in RFC  verwendet werden; 2278http://www.ietf.org/rfc/rfc2278.txt. In diesem Dokument wird ein Zeichensatz als Kombination aus einem oder mehreren codierten Zeichensätzen und einem Zeichencodierungsschema definiert. (Diese Definition ist verwirrend; einige andere Softwaresysteme definieren Charset als Synonym für codierten Zeichensatz.)

Ein codierter Zeichensatz ist eine Zuordnung zwischen einem Satz abstrakter Zeichen und einem Satz ganzzahliger Zeichen. US-ASCII, ISO  8859-1, JIS  X  0201 und Unicode sind Beispiele für codierte Zeichensätze.

Einige Standards haben einen Zeichensatz so definiert, dass er einfach ein Satz von abstrakten Zeichen ohne zugeordnete Nummerierung ist. Ein Alphabet ist ein Beispiel für einen solchen Zeichensatz. Die subtile Unterscheidung zwischen Zeichensatz und codiertem Zeichensatz wird in der Praxis jedoch selten verwendet; erstere ist zu einer Kurzform für Letzteres geworden, einschließlich der Java-API-Spezifikation.

Ein Zeichencodierungsschema ist eine Zuordnung zwischen einem oder mehreren codierten Zeichensätzen und einer Reihe von Oktettsequenzen (Acht-Bit-Byte). UTF-8, UTF-16, ISO  2022 und EUC sind Beispiele für Zeichencodierungsschemas. Codierungsschemas werden häufig einem bestimmten codierten Zeichensatz zugeordnet. UTF-8 wird beispielsweise nur zum Codieren von Unicode verwendet. Einige Schemas sind jedoch mehreren codierten Zeichensätzen zugeordnet; EUC kann beispielsweise verwendet werden, um Zeichen in einer Vielzahl von asiatischen codierten Zeichensätzen zu codieren.

Wenn ein codierter Zeichensatz ausschließlich mit einem einzelnen Zeichencodierungsschema verwendet wird, wird das entsprechende Zeichensatz normalerweise für den codierten Zeichensatz benannt. Andernfalls wird ein Zeichensatz normalerweise nach dem Codierungsschema und möglicherweise dem Gebietsschema der von ihm unterstützten codierten Zeichensätze benannt. Daher US-ASCII ist sowohl der Name eines codierten Zeichensatzes als auch des Zeichensatzes, der ihn codiert, während EUC-JP der Name des Zeichensatzes ist, der die JIS-  codiert; X  0201, JIS  X  0208 und JIS  X  0212-codierte Zeichensätze für die japanische Sprache.

Die native Zeichencodierung der Programmiersprache Java ist UTF-16. Ein Zeichensatz in der Java-Plattform definiert daher eine Zuordnung zwischen Sequenzen von utf-16-Bit-Codeeinheiten (d. h. Sequenzen von Zeichen) und Bytesequenzen.

In Version 1.4 hinzugefügt.

Java-Dokumentation für java.nio.charset.Charset.

Teile dieser Seite sind Änderungen, die auf Arbeiten basieren, die vom Android Open Source Project erstellt und freigegeben wurden und gemäß den In Attribution License beschriebenen Begriffen verwendet werden.

Konstruktoren

Charset(IntPtr, JniHandleOwnership)

Ein Konstruktor, der beim Erstellen verwalteter Darstellungen von JNI-Objekten verwendet wird; wird von der Runtime aufgerufen.

Charset(String, String[])

Initialisiert ein neues Zeichenset mit dem angegebenen kanonischen Namen und Aliassatz.

Eigenschaften

Class

Gibt die Laufzeitklasse dieses Objectzurück.

(Geerbt von Object)
Handle

Das Handle zum zugrunde liegenden Android-instance.

(Geerbt von Object)
IsRegistered

Gibt an, ob dieses Zeichenset in der IANA Charset Registry registriert ist oder nicht.

JniIdentityHashCode

Eine benannte Zuordnung zwischen Sequenzen aus sechzehn Bit-Unicode-Codeeinheiten und Bytesequenzen.

(Geerbt von Object)
JniPeerMembers

Eine benannte Zuordnung zwischen Sequenzen aus sechzehn Bit-Unicode-Codeeinheiten und Bytesequenzen.

PeerReference

Eine benannte Zuordnung zwischen Sequenzen aus sechzehn Bit-Unicode-Codeeinheiten und Bytesequenzen.

(Geerbt von Object)
ThresholdClass

Diese API unterstützt die Mono für Android-Infrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code vorgesehen.

ThresholdType

Diese API unterstützt die Mono für Android-Infrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code vorgesehen.

Methoden

Aliases()

Gibt einen Satz zurück, der die Aliase dieses Zeichensatzes enthält.

AvailableCharsets()

Erstellt eine sortierte Zuordnung aus kanonischen Zeichensatznamen zu Charsetobjekten.

CanEncode()

Gibt an, ob dieses Zeichensatz die Codierung unterstützt.

Clone()

Erstellt und gibt eine Kopie dieses Objekts zurück.

(Geerbt von Object)
CompareTo(Charset)

Vergleicht dieses Zeichenset mit einem anderen.

Contains(Charset)

Gibt an, ob dieses Zeichenset den angegebenen Zeichensatz enthält oder nicht.

Decode(ByteBuffer)

Convenience-Methode, die Bytes in diesem Zeichensatz in Unicode-Zeichen decodiert.

DefaultCharset()

Gibt den Standardzeichensatz dieses virtuellen Java-Computers zurück.

DisplayName()

Gibt den lesbaren Namen dieses Zeichensatzes für das Standardgebietsschema zurück.

DisplayName(Locale)

Gibt den lesbaren Namen dieses Zeichensatzes für das angegebene Gebietsschema zurück.

Dispose()

Eine benannte Zuordnung zwischen Sequenzen aus sechzehn Bit-Unicode-Codeeinheiten und Bytesequenzen.

(Geerbt von Object)
Dispose(Boolean)

Eine benannte Zuordnung zwischen Sequenzen aus sechzehn Bit-Unicode-Codeeinheiten und Bytesequenzen.

(Geerbt von Object)
Encode(CharBuffer)

Convenience-Methode, die Unicode-Zeichen in Bytes in diesem Zeichensatz codiert.

Encode(String)

Convenience-Methode, die eine Zeichenfolge in Bytes in diesem Zeichensatz codiert.

Equals(Object)

Gibt an, ob dieses Objekt gleich einem anderen ist.

ForName(String)

Gibt ein Charset-Objekt für das benannte Zeichensatz zurück.

GetHashCode()

Berechnet einen Hashcode für dieses Zeichenset.

IsSupported(String)

Gibt an, ob das benannte Zeichensatz unterstützt wird.

JavaFinalize()

Wird vom Garbage Collector für ein Objekt aufgerufen, wenn die Garbage Collection feststellt, dass keine Verweise mehr auf das Objekt vorhanden sind.

(Geerbt von Object)
Name()

Gibt den kanonischen Namen dieses Zeichensatzes zurück.

NewDecoder()

Erstellt einen neuen Decoder für dieses Zeichenset.

NewEncoder()

Erstellt einen neuen Encoder für dieses Zeichenset.

Notify()

Aktiviert einen einzelnen Thread, der auf dem Monitor dieses Objekts wartet.

(Geerbt von Object)
NotifyAll()

Aktiviert alle Threads, die auf dem Monitor dieses Objekts warten.

(Geerbt von Object)
SetHandle(IntPtr, JniHandleOwnership)

Legt die Handle-Eigenschaft fest.

(Geerbt von Object)
ToArray<T>()

Eine benannte Zuordnung zwischen Sequenzen aus sechzehn Bit-Unicode-Codeeinheiten und Bytesequenzen.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die dieses Zeichenset beschreibt.

UnregisterFromRuntime()

Eine benannte Zuordnung zwischen Sequenzen aus sechzehn Bit-Unicode-Codeeinheiten und Bytesequenzen.

(Geerbt von Object)
Wait()

Bewirkt, dass der aktuelle Thread wartet, bis er aktiviert wird, in der Regel durch em benachrichtigen/em> oder <em>interrupted</em>.<><

(Geerbt von Object)
Wait(Int64)

Bewirkt, dass der aktuelle Thread wartet, bis er aktiviert wird, in der Regel, indem <er>benachrichtigt</em> oder <em>interrupted</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist.

(Geerbt von Object)
Wait(Int64, Int32)

Bewirkt, dass der aktuelle Thread wartet, bis er aktiviert wird, in der Regel, indem <er>benachrichtigt</em> oder <em>interrupted</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist.

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

IComparable.CompareTo(Object)

Eine benannte Zuordnung zwischen Sequenzen aus sechzehn Bit-Unicode-Codeeinheiten und Bytesequenzen.

IJavaPeerable.Disposed()

Eine benannte Zuordnung zwischen Sequenzen aus sechzehn Bit-Unicode-Codeeinheiten und Bytesequenzen.

(Geerbt von Object)
IJavaPeerable.DisposeUnlessReferenced()

Eine benannte Zuordnung zwischen Sequenzen aus sechzehn Bit-Unicode-Codeeinheiten und Bytesequenzen.

(Geerbt von Object)
IJavaPeerable.Finalized()

Eine benannte Zuordnung zwischen Sequenzen aus sechzehn Bit-Unicode-Codeeinheiten und Bytesequenzen.

(Geerbt von Object)
IJavaPeerable.JniManagedPeerState

Eine benannte Zuordnung zwischen Sequenzen aus sechzehn Bit-Unicode-Codeeinheiten und Bytesequenzen.

(Geerbt von Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Eine benannte Zuordnung zwischen Sequenzen aus sechzehn Bit-Unicode-Codeeinheiten und Bytesequenzen.

(Geerbt von Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Eine benannte Zuordnung zwischen Sequenzen aus sechzehn Bit-Unicode-Codeeinheiten und Bytesequenzen.

(Geerbt von Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Eine benannte Zuordnung zwischen Sequenzen aus sechzehn Bit-Unicode-Codeeinheiten und Bytesequenzen.

(Geerbt von Object)

Erweiterungsmethoden

JavaCast<TResult>(IJavaObject)

Führt eine Für Android-Runtime überprüfte Typkonvertierung aus.

JavaCast<TResult>(IJavaObject)

Eine benannte Zuordnung zwischen Sequenzen aus sechzehn Bit-Unicode-Codeeinheiten und Bytesequenzen.

GetJniTypeName(IJavaPeerable)

Eine benannte Zuordnung zwischen Sequenzen aus sechzehn Bit-Unicode-Codeeinheiten und Bytesequenzen.

Gilt für: