Sprache

CharsetEncoder.Encode Methode

Definition

Überlädt

Name Beschreibung
Encode(CharBuffer)

Convenience-Methode, die den verbleibenden Inhalt eines einzelnen Eingabezeichenpuffers in einen neu zugeordneten Bytepuffer codiert.

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.

[Android.Runtime.Register("encode", "(Ljava/nio/CharBuffer;)Ljava/nio/ByteBuffer;", "")]
public Java.Nio.ByteBuffer? Encode(Java.Nio.CharBuffer? in);
[<Android.Runtime.Register("encode", "(Ljava/nio/CharBuffer;)Ljava/nio/ByteBuffer;", "")>]
member this.Encode : Java.Nio.CharBuffer -> Java.Nio.ByteBuffer

Parameter

in
CharBuffer

Der Eingabezeichenpuffer

Gibt zurück

Ein neu zugewiesener Bytepuffer, der das Ergebnis des Codierungsvorgangs enthält. Die Position des Puffers ist null, und sein Grenzwert folgt dem letzten geschriebenen Byte.

Attribute

Ausnahmen

wenn ein anderer Codierungsvorgang ausgeführt wird.

wenn eine ungültige Eingabezeichensequenz für dieses Zeichensatz aufgetreten ist und die Aktion für falsch formatierten Fehler ist Report

wenn eine zulässige, aber nicht verwendbare Eingabezeichensequenz für diese Zeichenmenge gefunden wird, und die Aktion für einen nicht verwendbaren Zeichenfehler ist Report. Nicht verwendbar bedeutet, dass die Unicode-Zeichensequenz an der aktuellen Position des Eingabepuffers nicht einer entsprechenden Bytesequenz zugeordnet werden kann.

wenn während des Codierens eine andere Ausnahme aufgetreten ist.

Hinweise

Convenience-Methode, die den verbleibenden Inhalt eines einzelnen Eingabezeichenpuffers in einen neu zugeordneten Bytepuffer codiert.

Diese Methode implementiert einen gesamten Codierungsvorgang; d. h., er setzt diesen Encoder zurück, codiert dann die Zeichen im angegebenen Zeichenpuffer und löscht schließlich diesen Encoder. Diese Methode sollte daher nicht aufgerufen werden, wenn bereits ein Codierungsvorgang ausgeführt wird.

Java Dokumentation für java.nio.charset.CharsetEncoder.encode(java.nio.CharBuffer).

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.

Gilt für:

Encode(CharBuffer, ByteBuffer, Boolean)

Codiert so viele Zeichen wie möglich aus dem angegebenen Eingabepuffer und schreibt die Ergebnisse in den angegebenen Ausgabepuffer.

[Android.Runtime.Register("encode", "(Ljava/nio/CharBuffer;Ljava/nio/ByteBuffer;Z)Ljava/nio/charset/CoderResult;", "")]
public Java.Nio.Charset.CoderResult? Encode(Java.Nio.CharBuffer? in, Java.Nio.ByteBuffer? out, bool endOfInput);
[<Android.Runtime.Register("encode", "(Ljava/nio/CharBuffer;Ljava/nio/ByteBuffer;Z)Ljava/nio/charset/CoderResult;", "")>]
member this.Encode : Java.Nio.CharBuffer * Java.Nio.ByteBuffer * bool -> Java.Nio.Charset.CoderResult

Parameter

in
CharBuffer

Der Eingabezeichenpuffer

out
ByteBuffer

Der Ausgabebytepuffer

endOfInput
Boolean

true wenn und nur, wenn der Aufrufer keine zusätzlichen Eingabezeichen bereitstellen kann, die über die im angegebenen Puffer hinausgehen

Gibt zurück

Ein Coderergebnisobjekt, das den Grund für die Beendigung beschreibt

Attribute

Ausnahmen

wenn der Codierungsvorgang bereits gestartet wurde oder in diesem Codierungsprozess keine weiteren Eingaben erforderlich sind.

Wenn die EncodeLoop(CharBuffer, ByteBuffer) Methode eine BufferUnderflowException oder BufferUnderflowException.

Hinweise

Codiert so viele Zeichen wie möglich aus dem angegebenen Eingabepuffer und schreibt die Ergebnisse in den angegebenen Ausgabepuffer.

Die Puffer werden von ihren aktuellen Positionen gelesen und in diese geschrieben. Die meisten Buffer#remaining in.remaining() Zeichen werden gelesen, und die meisten Buffer#remaining out.remaining() Bytes werden geschrieben. Die Positionen der Puffer werden erweitert, um die gelesenen Zeichen und die geschriebenen Bytes widerzuspiegeln, aber ihre Markierungen und Grenzwerte werden nicht geändert.

Neben dem Lesen von Zeichen aus dem Eingabepuffer und dem Schreiben von Bytes in den Ausgabepuffer gibt diese Methode ein CoderResult Objekt zurück, um den Grund für die Beendigung zu beschreiben:

<Ul>

<li>

CoderResult#UNDERFLOW gibt an, dass so viel der Eingabepuffer wie möglich codiert wurde. Wenn keine weitere Eingabe vorhanden ist, kann der Aufrufer mit dem nächsten Schritt des Codierungsvorgangs fortfahren. Andernfalls sollte diese Methode erneut mit weiteren Eingaben aufgerufen werden.

</li>

<li>

CoderResult#OVERFLOW gibt an, dass im Ausgabepuffer nicht genügend Speicherplatz vorhanden ist, um weitere Zeichen zu codieren. Diese Methode sollte erneut mit einem Ausgabepuffer aufgerufen werden, der mehr Puffer#verbleibenden Bytes enthält. Dies geschieht in der Regel durch Entwässern von codierten Bytes aus dem Ausgabepuffer.

</li>

<li>

Ein "CoderResult#malformedForLength"-Eingabeergebnis weist darauf hin, dass ein falsch formatierter Eingabefehler erkannt wurde. Die falsch formatierten Zeichen beginnen an der Position des Eingabepuffers (möglicherweise inkrementiert). Die Anzahl falsch formatierter Zeichen kann durch Aufrufen der Methode des Ergebnisobjekts CoderResult#length() length bestimmt werden. Dieser Fall gilt nur, wenn die #onMalformedInput falsch formatierte Aktion dieses Encoders lautet CodingErrorAction#REPORT. Andernfalls wird die falsch formatierte Eingabe ignoriert oder ersetzt, wie angefordert.

</li>

<li>

Ein CoderResult#unmappableForLength unappable-character-Ergebnis gibt an, dass ein nicht verwendbarer Zeichenfehler erkannt wurde. Die Zeichen, die das nicht verwendbare Zeichen codieren, beginnen an der Position des Eingabepuffers (möglicherweise inkrementiert). die Anzahl solcher Zeichen kann durch Aufrufen der Methode des Ergebnisobjekts CoderResult#length() length bestimmt werden. Dieser Fall gilt nur, wenn die #onUnmappableCharacter nicht verwendbare Aktion dieses Encoders lautet CodingErrorAction#REPORT. Andernfalls wird das nicht verwendbare Zeichen wie angefordert ignoriert oder ersetzt.

</li>

</ul>

Wenn diese Methode in jedem Fall im selben Codierungsvorgang wiedergerufen werden soll, sollten Sie darauf achten, alle im Eingabepuffer verbleibenden Zeichen beizubehalten, damit sie für den nächsten Aufruf verfügbar sind.

Der endOfInput Parameter gibt an, ob der Aufrufer weitere Eingaben bereitstellen kann, die im angegebenen Eingabepuffer enthalten sind. Wenn es eine Möglichkeit gibt, zusätzliche Eingaben bereitzustellen, sollte der Aufrufer für diesen Parameter übergeben false werden. Wenn keine Möglichkeit besteht, weitere Eingaben bereitzustellen, sollte der Aufrufer übergeben truewerden. Es ist nicht irrtümlich, und tatsächlich ist es ziemlich üblich, einen Aufruf zu übergeben false und später zu erkennen, dass keine weiteren Eingaben tatsächlich verfügbar waren. Es ist jedoch wichtig, dass der endgültige Aufruf dieser Methode in einer Folge von Aufrufen immer übergeben true wird, sodass alle verbleibenden nicht codierten Eingaben als falsch formatiert behandelt werden.

Diese Methode funktioniert durch Aufrufen der #encodeLoop encodeLoop Methode, Interpretieren der Ergebnisse, Behandeln von Fehlerbedingungen und erneutes Aufrufen der Methode nach Bedarf.

Java Dokumentation für java.nio.charset.CharsetEncoder.encode(java.nio.CharBuffer, java.nio.ByteBuffer, boolean).

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.

Gilt für: