CharsetEncoder 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.
Ein Modul, das eine Sequenz von Sechszehn-Bit-Unicode-Zeichen in eine Folge von Bytes in einem bestimmten Zeichensatz transformieren kann.
[Android.Runtime.Register("java/nio/charset/CharsetEncoder", DoNotGenerateAcw=true)]
public abstract class CharsetEncoder : Java.Lang.Object
[<Android.Runtime.Register("java/nio/charset/CharsetEncoder", DoNotGenerateAcw=true)>]
type CharsetEncoder = class
inherit Object
- Vererbung
- Attribute
Hinweise
Ein Modul, das eine Sequenz von Sechszehn-Bit-Unicode-Zeichen in eine Folge von Bytes in einem bestimmten Zeichensatz transformieren kann.
"Schritte">
Die Eingabezeichensequenz wird in einem Zeichenpuffer oder einer Reihe solcher Puffer bereitgestellt. Die Ausgabebytesequenz wird in einen Bytepuffer oder eine Reihe solcher Puffer geschrieben. Ein Encoder sollte immer verwendet werden, indem die folgende Sequenz von Methodenaufrufen, nachfolgend als Codierungsvorgang bezeichnet wird:
<ol>
<li>
Setzen Sie den Encoder über die #reset reset Methode zurück, es sei denn, er wurde noch nicht verwendet;
</li>
<li>
Rufen Sie die #encode encode Methode null oder mehr Mal auf, solange zusätzliche Eingaben verfügbar sind, übergeben false Sie das endOfInput Argument, und füllen Sie den Eingabepuffer, und leeren Sie den Ausgabepuffer zwischen Aufrufen;
</li>
<li>
Rufen Sie die #encode encode Methode ein letztes Mal auf, und übergeben true Sie dann das endOfInput Argument.
</li>
<li>
Rufen Sie die #flush flush Methode auf, damit der Encoder jeden internen Zustand in den Ausgabepuffer leeren kann.
</li>
</ol>
Jeder Aufruf der #encode encode Methode codiert so viele Zeichen wie möglich aus dem Eingabepuffer und schreibt die resultierenden Bytes in den Ausgabepuffer. Die #encode encode Methode gibt zurück, wenn mehr Eingaben erforderlich sind, wenn nicht genügend Platz im Ausgabepuffer vorhanden ist oder wenn ein Codierungsfehler aufgetreten ist. In jedem Fall wird ein CoderResult Objekt zurückgegeben, um den Grund für die Beendigung zu beschreiben. Ein Aufrufer kann dieses Objekt untersuchen und den Eingabepuffer ausfüllen, den Ausgabepuffer leeren oder versuchen, nach Bedarf einen Codierungsfehler wiederherzustellen, und versuchen Sie es erneut.
"ce">
Es gibt zwei allgemeine Arten von Codierungsfehlern. Wenn es sich bei der Eingabezeichensequenz nicht um eine legale 6zehn-Bit-Unicode-Sequenz handelt, wird die Eingabe als falsch formatiert betrachtet. Wenn die Eingabezeichensequenz legal ist, aber nicht einer gültigen Bytesequenz im angegebenen Zeichensatz zugeordnet werden kann, wurde ein nicht verwendbares Zeichen gefunden.
"cae">
Wie ein Codierungsfehler behandelt wird, hängt von der für diesen Fehlertyp angeforderten Aktion ab, die von einer Instanz der CodingErrorAction Klasse beschrieben wird. Mögliche Fehleraktionen sind codierenErrorAction#IGNORE ignorieren die fehlerhafte Eingabe, CodingErrorAction#REPORT melden den Fehler an den Aufrufer über das zurückgegebene CoderResult Objekt, oder CodingErrorAction#REPLACE ersetzen die fehlerhafte Eingabe durch den aktuellen Wert des Ersatzbytearrays. Der Ersatz
wird zunächst auf den Standardersatz des Encoders festgelegt, der häufig (aber nicht immer) den Anfangswert hat { (byte)'?' };
der Wert kann über die #replaceWith(byte[]) replaceWith Methode geändert werden.
Die Standardaktion für falsch formatierte Eingaben und nicht verwendbare Zeichenfehler besteht darin, dass sie codierenErrorAction#REPORT gemeldet werden. Die falsch formatierte Eingabefehleraktion kann über die #onMalformedInput(CodingErrorAction) onMalformedInput Methode geändert werden. Die nicht verwendbare Zeichenaktion kann über die #onUnmappableCharacter(CodingErrorAction) onUnmappableCharacter Methode geändert werden.
Diese Klasse wurde entwickelt, um viele Details des Codierungsprozesses zu behandeln, einschließlich der Implementierung von Fehleraktionen. Ein Encoder für ein bestimmtes Zeichenset, bei dem es sich um eine konkrete Unterklasse dieser Klasse handelt, muss nur die abstrakte #encodeLoop encodeLoop Methode implementieren, die die grundlegende Codierungsschleife kapselt. Eine Unterklasse, die den internen Zustand verwaltet, sollte zusätzlich die #implFlush implFlush Und #implReset implReset Methoden außer Kraft setzen.
Instanzen dieser Klasse sind nicht sicher für die Verwendung durch mehrere gleichzeitige Threads.
In 1.4 hinzugefügt.
Java Dokumentation für java.nio.charset.CharsetEncoder.
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 |
|---|---|
| CharsetEncoder(Charset, Single, Single, Byte[]) |
Initialisiert einen neuen Encoder. |
| CharsetEncoder(Charset, Single, Single) |
Initialisiert einen neuen Encoder. |
| CharsetEncoder(IntPtr, JniHandleOwnership) |
Ein Konstruktor, der beim Erstellen verwalteter Darstellungen von JNI-Objekten verwendet wird; wird von der Laufzeit aufgerufen. |
Eigenschaften
| Name | Beschreibung |
|---|---|
| Class |
Gibt die Laufzeitklasse dieses Werts |
| Handle |
Das Handle für die zugrunde liegende Android-Instanz. (Geerbt von Object) |
| JniIdentityHashCode |
Ruft den Identitätshashcode ab, der diesem Java Peer von der Interop-Laufzeit zugewiesen ist. (Geerbt von Object) |
| JniManagedPeerState |
Ein Modul, das eine Sequenz von Sechszehn-Bit-Unicode-Zeichen in eine Folge von Bytes in einem bestimmten Zeichensatz transformieren kann. (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 |
|---|---|
| AverageBytesPerChar() |
Gibt die durchschnittliche Anzahl von Bytes zurück, die für jedes Zeichen der Eingabe erzeugt werden. |
| CanEncode(Char) |
Gibt an, ob dieser Encoder das angegebene Zeichen codieren kann. |
| CanEncode(ICharSequence) |
Gibt an, ob dieser Encoder die angegebene Zeichensequenz codieren kann. |
| CanEncode(String) |
Gibt an, ob dieser Encoder die angegebene Zeichensequenz codieren kann. |
| Charset() |
Gibt das Zeichenset zurück, das diesen Encoder erstellt hat. |
| Clone() |
Erstellt und gibt eine Kopie dieses Objekts zurück. (Geerbt von Object) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
Ein Modul, das eine Sequenz von Sechszehn-Bit-Unicode-Zeichen in eine Folge von Bytes in einem bestimmten Zeichensatz transformieren kann. (Geerbt von JavaObject) |
| 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() |
Ein Modul, das eine Sequenz von Sechszehn-Bit-Unicode-Zeichen in eine Folge von Bytes in einem bestimmten Zeichensatz transformieren kann. (Geerbt von JavaObject) |
| Encode(CharBuffer, ByteBuffer, Boolean) |
Codiert so viele Zeichen wie möglich aus dem angegebenen Eingabepuffer und schreibt die Ergebnisse in den angegebenen Ausgabepuffer. |
| Encode(CharBuffer) |
Convenience-Methode, die den verbleibenden Inhalt eines einzelnen Eingabezeichenpuffers in einen neu zugeordneten Bytepuffer codiert. |
| EncodeLoop(CharBuffer, ByteBuffer) |
Codiert mindestens ein Zeichen in mindestens ein Byte. |
| Equals(Object) |
Ein Modul, das eine Sequenz von Sechszehn-Bit-Unicode-Zeichen in eine Folge von Bytes in einem bestimmten Zeichensatz transformieren kann. (Geerbt von JavaObject) |
| Equals(Object) |
Gibt an, ob ein anderes Objekt "gleich" diesem Objekt ist. (Geerbt von Object) |
| Flush(ByteBuffer) |
Löscht diesen Encoder. |
| GetHashCode() |
Gibt einen Hashcodewert für das Objekt zurück. (Geerbt von Object) |
| ImplFlush(ByteBuffer) |
Löscht diesen Encoder. |
| ImplOnMalformedInput(CodingErrorAction) |
Meldet eine Änderung an der falsch formatierten Eingabeaktion dieses Encoders. |
| ImplOnUnmappableCharacter(CodingErrorAction) |
Meldet eine Änderung an der nicht verwendbaren Zeichenaktion dieses Encoders. |
| ImplReplaceWith(Byte[]) |
Meldet eine Änderung des Ersetzungswerts dieses Encoders. |
| ImplReset() |
Setzt diesen Encoder zurück, wobei alle charsetspezifischen internen Zustände gelöscht werden. |
| IsLegalReplacement(Byte[]) |
Gibt an, ob das angegebene Bytearray ein rechtlicher Ersatzwert für diesen Encoder ist. |
| JavaFinalize() |
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) |
| MalformedInputAction() |
Gibt die aktuelle Aktion dieses Encoders für falsch formatierte Eingabefehler zurück. |
| MaxBytesPerChar() |
Gibt die maximale Anzahl von Bytes zurück, die für jedes Zeichen der Eingabe erzeugt werden. |
| 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) |
| OnMalformedInput(CodingErrorAction) |
Ändert die Aktion dieses Encoders für fehlerhafte Eingabefehler. |
| OnUnmappableCharacter(CodingErrorAction) |
Ändert die Aktion dieses Encoders für nicht verwendbare Zeichenfehler. |
| Replacement() |
Gibt den Ersetzungswert dieses Encoders zurück. |
| ReplaceWith(Byte[]) |
Ändert den Ersetzungswert dieses Encoders. |
| Reset() |
Setzt diesen Encoder zurück, wobei alle internen Zustände gelöscht werden. |
| SetHandle(IntPtr, JniHandleOwnership) |
Legt die Handle-Eigenschaft fest. (Geerbt von Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
Ein Modul, das eine Sequenz von Sechszehn-Bit-Unicode-Zeichen in eine Folge von Bytes in einem bestimmten Zeichensatz transformieren kann. (Geerbt von JavaObject) |
| ToArray<T>() |
Erstellt ein verwaltetes Array aus diesem Java Arraywrapper. (Geerbt von Object) |
| ToString() |
Gibt eine Zeichenfolgendarstellung des Objekts zurück. (Geerbt von Object) |
| UnmappableCharacterAction() |
Gibt die aktuelle Aktion dieses Encoders für nicht verwendbare Zeichenfehler zurück. |
| 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 |
|---|---|
| IJavaPeerable.Disposed() |
Ein Modul, das eine Sequenz von Sechszehn-Bit-Unicode-Zeichen in eine Folge von Bytes in einem bestimmten Zeichensatz transformieren kann. (Geerbt von JavaObject) |
| IJavaPeerable.Finalized() |
Ein Modul, das eine Sequenz von Sechszehn-Bit-Unicode-Zeichen in eine Folge von Bytes in einem bestimmten Zeichensatz transformieren kann. (Geerbt von JavaObject) |
| IJavaPeerable.JniObjectReferenceControlBlock |
Ein Modul, das eine Sequenz von Sechszehn-Bit-Unicode-Zeichen in eine Folge von Bytes in einem bestimmten Zeichensatz transformieren kann. (Geerbt von JavaObject) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Ein Modul, das eine Sequenz von Sechszehn-Bit-Unicode-Zeichen in eine Folge von Bytes in einem bestimmten Zeichensatz transformieren kann. (Geerbt von JavaObject) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Ein Modul, das eine Sequenz von Sechszehn-Bit-Unicode-Zeichen in eine Folge von Bytes in einem bestimmten Zeichensatz transformieren kann. (Geerbt von JavaObject) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Ein Modul, das eine Sequenz von Sechszehn-Bit-Unicode-Zeichen in eine Folge von Bytes in einem bestimmten Zeichensatz transformieren kann. (Geerbt von JavaObject) |
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) |
Ein Modul, das eine Sequenz von Sechszehn-Bit-Unicode-Zeichen in eine Folge von Bytes in einem bestimmten Zeichensatz transformieren kann. |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Versuchen Sie, die Eingabe |