Charset Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Eine benannte Zuordnung zwischen Sequenzen von Sechszehn-Bit-Unicode-Codeeinheiten und Bytesequenzen.
[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
- Vererbung
- Attribute
- Implementiert
Hinweise
Eine benannte Zuordnung zwischen Sequenzen von Sechszehn-Bit-Unicode-Codeeinheiten und Bytesequenzen. 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 alle Zeichensätze enthält, für die unterstützung im aktuellen Java virtuellen Computer 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 sicher für die Verwendung durch mehrere gleichzeitige Threads.
"charenc"><h2>Charset names</h2>
Zeichensätze werden durch Zeichenfolgen benannt, die aus den folgenden Zeichen bestehen:
<Ul>
<li> Die Großbuchstaben 'A' durch 'Z' ('\u0041' durch '\u005a'),
<li> Die Kleinbuchstaben 'a' durch 'z' ('\u0061' durch '\u007a'),
<li> Die Ziffern '0' durch '9' ('\u0030' durch '\u0039'),
<li> Das Strichzeichen '-' ('\u002d', <kleiner>BINDESTRICH MINUS</klein>),
<li> Das Pluszeichen '+' ('\u002b', <kleines>PLUSZEICHEN</klein>),
<li> Das Punktzeichen '.' ('\u002e', <kleiner>VOLLSTÄNDIGER STOPP</klein>),
<li> Das Doppelpunktzeichen ':' ('\u003a', <kleiner>DOPPELPUNKT</klein>) und
<li> Das Unterstrichzeichen '_' ('\u005f', <klein>NIEDRIG LINIE</klein>).
</ul>
Ein Zeichensatzname muss entweder mit einem Buchstaben oder einer Ziffer beginnen. Die leere Zeichenfolge ist kein zulässiger Zeichensatzname. Zeichensatznamen müssen nicht groß- und kleinschreibung beachtet werden. d. h. der Fall wird beim Vergleichen von Zeichensatznamen immer ignoriert. Charset-Namen folgen in der Regel den in RFC dokumentierten Konventionen; 2278: IANA Charset Registration Procedureshttp://www.ietf.org/rfc/rfc2278.txt.
Jedes Zeichenset hat einen kanonischen Namen und kann auch einen oder mehrere Aliase enthalten. Der kanonische Name wird von der #name() name Methode dieser Klasse zurückgegeben. Kanonische Namen sind üblicherweise in Großbuchstaben. Die Aliase eines Zeichensets 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 Zeichensets ist entweder sein kanonischer Name oder ein Alias. Der historische Name wird von den getEncoding() Methoden und java.io.InputStreamReader#getEncoding InputStreamReaderjava.io.OutputStreamWriter#getEncoding OutputStreamWriter Klassen zurückgegeben.
"iana"> Wenn eine im IANA Charset Registryhttp://www.iana.org/assignments/character-sets aufgeführte Zeichenmenge durch eine Implementierung der Java Plattform unterstützt wird, muss ihr kanonischer Name der in der Registrierung aufgeführte Name sein. Viele Zeichensätze werden mehr als einen Namen in der Registrierung angegeben, in diesem Fall identifiziert die Registrierung einen der Namen als MIME-bevorzugt. Wenn ein Zeichensatz mehrere Registrierungsnamen aufweist, muss der kanonische Name der MIME-bevorzugte Name sein, und die anderen Namen in der Registrierung müssen gültige Aliase sein. Wenn ein unterstütztes Zeichensatz nicht in der IANA-Registrierung aufgeführt ist, muss der kanonische Name mit einer der Zeichenfolgen "X-" oder "x-".
Die IANA-Zeichensatzregistrierung ändert sich im Laufe der Zeit, und der kanonische Name und die Aliase eines bestimmten Zeichensets können sich auch im Laufe der Zeit ändern. Um die Kompatibilität zu gewährleisten, wird empfohlen, dass kein Alias jemals aus einem Zeichensatz entfernt wird und dass, wenn der kanonische Name eines Zeichensets geändert wird, der vorherige kanonische Name in einen Alias umgewandelt wird.
<h2>Standard charsets</h2>
"standard">Jede Implementierung der Java-Plattform ist erforderlich, um die folgenden Standardzeichen zu unterstützen. Lesen Sie die Versionsdokumentation für Ihre Implementierung, um festzustellen, ob andere Zeichensätze unterstützt werden. Das Verhalten solcher optionalen Zeichensätze kann sich zwischen Implementierungen unterscheiden.
<blockquote><table class="striped" style="width:80%"><caption style="display:none">Description of standard charsets</caption><thead><tr><th scope="col" style="text-align:left">Char< 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 grundlegende lateinische Block des Unicode-Zeichensatzes</td></tr tr><><th scope="row" style="vertical-align:top">ISO-8859-1 </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>tr<><th scope="row" style="vertical-align:top">UTF-16BE</th><td>Sixteen-bit UCS Transformation Format, big-endian byte order</td></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><><th scope="row" style="vertical-align:top">UTF-16</th><td>Sixteen-Bit UCS Transformation Format, byte Durch ein optionales Bytereihenfolgezeichen/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, wird in Änderungsantrag angegeben; 2 von ISO 10646-1 und wird auch im Unicode-Standardhttp://www.unicode.org/unicode/standard/standard.html beschrieben.
Die UTF-16 Zeichensätze werden durch RFC angegeben; 2781http://www.ietf.org/rfc/rfc2781.txt; die Transformationsformate, auf denen sie basieren, werden in Änderungsantrag angegeben; 1 von 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 für bytereihenfolge empfindlich. In diesen Codierungen kann die Bytereihenfolge eines Datenstroms durch ein anfängliches Bytereihenfolgezeichen gekennzeichnet werden, das durch das Unicode-Zeichen '\uFEFF'dargestellt wird. Bytereihenfolgemarkierungen werden wie folgt behandelt:
<Ul>
<li>
Beim Decodieren interpretieren die UTF-16BE Zeichen UTF-16LE und Zeichen die anfänglichen Bytereihenfolgemarkierungen als <kleine>ZERO-WIDTH NON-BREAKING LEERZEICHEN</klein>; bei der Codierung schreiben sie keine Bytereihenfolgemarkierungen.
</li>
<li>
Beim Decodieren interpretiert die UTF-16 Zeichenmenge die Bytereihenfolgemarke am Anfang des Eingabedatenstroms, um die Bytereihenfolge des Datenstroms anzugeben, wird jedoch standardmäßig auf "big-endian" festgelegt, wenn kein Bytereihenfolgezeichen vorhanden ist. Bei der Codierung wird die Big-End-Bytereihenfolge verwendet und ein Big-End-Byte-Order-Zeichen geschrieben.
</li>
</ul>
In jedem Fall werden Bytereihenfolgemarkierungen, die nach dem ersten Element einer Eingabesequenz auftreten, nicht ausgelassen, da derselbe Code verwendet wird, um kleine<ZERO-WIDTH NON-BREAKING LEERZEICHEN>/Klein< darzustellen>.
Android-Hinweis: Standardmäßig ist die Android-Plattform immer UTF-8.
Die StandardCharsets Klasse definiert Konstanten für jede der Standardzeichen.
<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 Zeichensatz als Synonym für codierte Zeichensätze.)
Ein codierter Zeichensatz ist eine Zuordnung zwischen einem Satz abstrakter Zeichen und einer Reihe von ganzen Zahlen. US-ASCII, ISO 8859-1, JIS X 0201 und Unicode sind Beispiele für codierte Zeichensätze.
Einige Standards haben einen Zeichensatz definiert, um einfach eine Reihe abstrakter Zeichen ohne zugeordnete Nummerierung zu sein. Ein Alphabet ist ein Beispiel für einen solchen Zeichensatz. Der subtile Unterschied zwischen Zeichensatz und codiertem Zeichensatz wird jedoch selten in der Praxis verwendet; der erste wurde zu einer kurzen Form für letztere, einschließlich in der Java API-Spezifikation.
Ein Zeichencodierungsschema ist eine Zuordnung zwischen mindestens einem codierten Zeichensatz und einer Reihe von Oktettsequenzen (Acht-Bit-Byte-Sequenzen). UTF-8, UTF-16, ISO 2022 und EUC sind Beispiele für Zeichencodierungsschemas. Codierungsschemas sind 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 z. B. verwendet werden, um Zeichen in einer Vielzahl asiatischer codierter Zeichensätze zu codieren.
Wenn ein codierter Zeichensatz ausschließlich mit einem einzelnen Zeichencodierungsschema verwendet wird, wird das entsprechende Zeichenset in der Regel für den codierten Zeichensatz benannt. andernfalls wird ein Zeichensatz normalerweise nach dem Codierungsschema und möglicherweise dem Gebietsschema der kodierten Zeichensätze benannt, die es unterstützt. Daher US-ASCII ist sowohl der Name eines codierten Zeichensatzes als auch des Zeichensatzes, der es codiert, während EUC-JP der Name des Zeichensatzes, der jiS codiert; X 0201, JIS X 0208 und JIS X 0212-codierte Zeichensätze für die japanische Sprache.
Die native Zeichencodierung der Java Programmiersprache ist UTF-16. Ein Zeichensatz in der Java-Plattform definiert daher eine Zuordnung zwischen Sequenzen von 16-Bit-UTF-16-Codeeinheiten (d. h. Sequenzen von Zeichen) und Bytesequenzen.
In 1.4 hinzugefügt.
Java Dokumentation für java.nio.charset.Charset.
Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.
Konstruktoren
| Name | Beschreibung |
|---|---|
| Charset(IntPtr, JniHandleOwnership) |
Ein Konstruktor, der beim Erstellen verwalteter Darstellungen von JNI-Objekten verwendet wird; wird von der Laufzeit aufgerufen. |
| Charset(String, String[]) |
Initialisiert ein neues Zeichenset mit dem angegebenen kanonischen Namen und Aliassatz. |
Eigenschaften
| Name | Beschreibung |
|---|---|
| Class |
Gibt die Laufzeitklasse dieses Werts |
| Handle |
Das Handle für die zugrunde liegende Android-Instanz. (Geerbt von Object) |
| IsRegistered |
Gibt an, ob dieses Zeichenset in der IANA Charset Registry registriert ist. |
| JniIdentityHashCode |
Ruft den Identitätshashcode ab, der diesem Java Peer von der Interop-Laufzeit zugewiesen ist. (Geerbt von Object) |
| JniManagedPeerState |
Eine benannte Zuordnung zwischen Sequenzen von Sechszehn-Bit-Unicode-Codeeinheiten und Bytesequenzen. (Geerbt von JavaObject) |
| JniPeerMembers |
Ruft die JNI-Metadaten ab, die zum Aufrufen von Mitgliedern dieses Java Peers verwendet werden. |
| PeerReference |
Ruft den JNI-Objektverweis für diesen Java Peer ab. (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
| Name | Beschreibung |
|---|---|
| Aliases() |
Gibt einen Satz zurück, der die Aliase dieses Zeichensatzes enthält. |
| AvailableCharsets() |
Erstellt eine sortierte Zuordnung aus kanonischen Zeichensatznamen zu Charset-Objekten. |
| CanEncode() |
Gibt an, ob dieses Zeichenset 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. |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
Eine benannte Zuordnung zwischen Sequenzen von Sechszehn-Bit-Unicode-Codeeinheiten und Bytesequenzen. (Geerbt von JavaObject) |
| Contains(Charset) |
Gibt an, ob dieses Zeichenset das angegebene Zeichenset enthält. |
| Decode(ByteBuffer) |
Convenience-Methode, die Bytes in diesem Zeichensatz in Unicode-Zeichen decodiert. |
| DefaultCharset() |
Gibt den Standardzeichensatz dieses Java virtuellen Computers zurück. |
| DisplayName() |
Gibt den lesbaren Namen dieses Zeichensets für das Standardgebietsschema zurück. |
| DisplayName(Locale) |
Gibt den lesbaren Namen dieses Zeichensets für das angegebene Gebietsschema zurück. |
| Dispose() |
Veröffentlicht die Ressourcen, die von diesem Java Peer gehalten werden. (Geerbt von Object) |
| Dispose(Boolean) |
Veröffentlicht die Ressourcen, die von diesem Java Peer gehalten werden. (Geerbt von Object) |
| DisposeUnlessReferenced() |
Eine benannte Zuordnung zwischen Sequenzen von Sechszehn-Bit-Unicode-Codeeinheiten und Bytesequenzen. (Geerbt von JavaObject) |
| Encode(CharBuffer) |
Convenience-Methode, die Unicode-Zeichen in Bytes in diesem Zeichensatz codiert. |
| Encode(String) |
Convenience-Methode, die eine Zeichenfolge in Byte in diesem Zeichensatz codiert. |
| Equals(Object) |
Gibt an, ob dieses Objekt mit einem anderen identisch ist. |
| Equals(Object) |
Eine benannte Zuordnung zwischen Sequenzen von Sechszehn-Bit-Unicode-Codeeinheiten und Bytesequenzen. (Geerbt von JavaObject) |
| ForName(String, Charset) |
Gibt ein Charset -Objekt für das benannte Zeichensatz zurück. |
| 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() |
Veraltet.
Wird vom Garbage Collector für ein Objekt aufgerufen, wenn die Garbage Collection bestimmt, dass keine weiteren Verweise auf das Objekt vorhanden sind. (Geerbt von Object) |
| Name() |
Gibt den kanonischen Namen dieses Zeichensets 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) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
Eine benannte Zuordnung zwischen Sequenzen von Sechszehn-Bit-Unicode-Codeeinheiten und Bytesequenzen. (Geerbt von JavaObject) |
| ToArray<T>() |
Erstellt ein verwaltetes Array aus diesem Java Arraywrapper. (Geerbt von Object) |
| ToString() |
Gibt eine Zeichenfolge zurück, die diesen Zeichensatz beschreibt. |
| UnregisterFromRuntime() |
Hebt die Registrierung dieses Java Peers aus der Interop-Laufzeit auf. (Geerbt von Object) |
| Wait() |
Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch em benachrichtigt/em< oder >em<unterbrochen>/em<.><> (Geerbt von Object) |
| Wait(Int64, Int32) |
Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch <em>benachrichtigt</em> oder <em>unterbrochen</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist. (Geerbt von Object) |
| Wait(Int64) |
Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch <em>benachrichtigt</em> oder <em>unterbrochen</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist. (Geerbt von Object) |
Explizite Schnittstellenimplementierungen
| Name | Beschreibung |
|---|---|
| IComparable.CompareTo(Object) |
Vergleicht dieses Zeichenset mit einem anderen Zeichensatz nach kanonischem Namen, wobei die Groß-/Kleinschreibung ignoriert wird. |
| IJavaPeerable.Disposed() |
Eine benannte Zuordnung zwischen Sequenzen von Sechszehn-Bit-Unicode-Codeeinheiten und Bytesequenzen. (Geerbt von JavaObject) |
| IJavaPeerable.Finalized() |
Eine benannte Zuordnung zwischen Sequenzen von Sechszehn-Bit-Unicode-Codeeinheiten und Bytesequenzen. (Geerbt von JavaObject) |
| IJavaPeerable.JniObjectReferenceControlBlock |
Eine benannte Zuordnung zwischen Sequenzen von Sechszehn-Bit-Unicode-Codeeinheiten und Bytesequenzen. (Geerbt von JavaObject) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Eine benannte Zuordnung zwischen Sequenzen von Sechszehn-Bit-Unicode-Codeeinheiten und Bytesequenzen. (Geerbt von JavaObject) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Eine benannte Zuordnung zwischen Sequenzen von Sechszehn-Bit-Unicode-Codeeinheiten und Bytesequenzen. (Geerbt von JavaObject) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Eine benannte Zuordnung zwischen Sequenzen von Sechszehn-Bit-Unicode-Codeeinheiten und Bytesequenzen. (Geerbt von JavaObject) |
| IJavaPeerable.UnregisterFromRuntime() |
Eine benannte Zuordnung zwischen Sequenzen von Sechszehn-Bit-Unicode-Codeeinheiten und Bytesequenzen. |
Erweiterungsmethoden
| Name | Beschreibung |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Ruft den JNI-Namen des Typs der Instanz |
| JavaAs<TResult>(IJavaPeerable) |
Versuchen Sie, die Eingabe |
| JavaCast<TResult>(IJavaObject) |
Führt eine android-laufzeitgecheckte Typkonvertierung aus. |
| JavaCast<TResult>(IJavaObject) |
Eine benannte Zuordnung zwischen Sequenzen von Sechszehn-Bit-Unicode-Codeeinheiten und Bytesequenzen. |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Versuchen Sie, die Eingabe |