Langue

CharsetEncoder.Encode Méthode

Définition

Surcharges

Nom Description
Encode(CharBuffer)

Méthode pratique qui encode le contenu restant d’une mémoire tampon de caractères d’entrée unique dans une mémoire tampon d’octet nouvellement allouée.

Encode(CharBuffer, ByteBuffer, Boolean)

Encode autant de caractères que possible à partir de la mémoire tampon d’entrée donnée, en écrivant les résultats dans la mémoire tampon de sortie donnée.

Encode(CharBuffer)

Méthode pratique qui encode le contenu restant d’une mémoire tampon de caractères d’entrée unique dans une mémoire tampon d’octet nouvellement allouée.

[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

Paramètres

in
CharBuffer

Mémoire tampon de caractères d’entrée

Retours

Mémoire tampon d’octet nouvellement allouée contenant le résultat de l’opération d’encodage. La position de la mémoire tampon est égale à zéro et sa limite suit le dernier octet écrit.

Attributs

Exceptions

si une autre opération d’encodage est en cours.

si une séquence de caractères d’entrée non valide pour cet ensemble de caractères est rencontrée et que l’action pour une erreur incorrecte est Report

si une séquence de caractères d’entrée légale mais non modifiable pour cet ensemble de caractères est rencontrée et que l’action pour l’erreur de caractère non modifiable est Report. L’inappappable signifie que la séquence de caractères Unicode à la position actuelle de la mémoire tampon d’entrée ne peut pas être mappée à une séquence d’octets équivalente.

si une autre exception s’est produite pendant l’opération de codage.

Remarques

Méthode pratique qui encode le contenu restant d’une mémoire tampon de caractères d’entrée unique dans une mémoire tampon d’octet nouvellement allouée.

Cette méthode implémente une opération d’encodage entière ; autrement dit, il réinitialise cet encodeur, puis encode les caractères dans la mémoire tampon de caractères donnée, et enfin il vide cet encodeur. Cette méthode ne doit donc pas être appelée si une opération d’encodage est déjà en cours.

Documentation Java pour java.nio.charset.CharsetEncoder.encode(java.nio.CharBuffer).

Les parties de cette page sont des modifications basées sur le travail créé et partagé par le projet Android Open Source et utilisés en fonction des termes décrits dans la licence d’attribution Creative Commons 2.5.

S’applique à

Encode(CharBuffer, ByteBuffer, Boolean)

Encode autant de caractères que possible à partir de la mémoire tampon d’entrée donnée, en écrivant les résultats dans la mémoire tampon de sortie donnée.

[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

Paramètres

in
CharBuffer

Mémoire tampon de caractères d’entrée

out
ByteBuffer

Mémoire tampon d’octets de sortie

endOfInput
Boolean

true si, et seulement si, l’appelant ne peut fournir aucun caractère d’entrée supplémentaire au-delà de ceux dans la mémoire tampon donnée

Retours

Objet coder-result décrivant la raison de l’arrêt

Attributs

Exceptions

si l’opération d’encodage a déjà démarré ou qu’aucune entrée supplémentaire n’est nécessaire dans ce processus d’encodage.

Si la EncodeLoop(CharBuffer, ByteBuffer) méthode a levé un BufferUnderflowException ou BufferUnderflowException.

Remarques

Encode autant de caractères que possible à partir de la mémoire tampon d’entrée donnée, en écrivant les résultats dans la mémoire tampon de sortie donnée.

Les mémoires tampons sont lues et écrites à partir de leurs positions actuelles. Au maximum Buffer#remaining in.remaining() , les caractères seront lus et au plus Buffer#remaining out.remaining() d’octets seront écrits. Les positions des mémoires tampons sont avancées pour refléter les caractères lus et les octets écrits, mais leurs marques et limites ne seront pas modifiées.

En plus de lire des caractères à partir de la mémoire tampon d’entrée et d’écrire des octets dans la mémoire tampon de sortie, cette méthode retourne un CoderResult objet pour décrire sa raison d’arrêt :

<ul>

<li>

CoderResult#UNDERFLOW indique que la plupart des mémoires tampons d’entrée que possible ont été encodées. S’il n’y a pas d’entrée supplémentaire, l’appelant peut passer à l’étape suivante de l’opération d’encodage. Sinon, cette méthode doit être appelée à nouveau avec une entrée supplémentaire.

</li>

<li>

CoderResult#OVERFLOW indique qu’il y a un espace insuffisant dans la mémoire tampon de sortie pour encoder plus de caractères. Cette méthode doit être appelée à nouveau avec une mémoire tampon de sortie qui a plus d’octets de mémoire tampon#restante. Cela est généralement effectué en drainant les octets encodés à partir de la mémoire tampon de sortie.

</li>

<li>

Un résultat d’entrée incorrecte CoderResult#malformedForLength indique qu’une erreur d’entrée incorrecte a été détectée. Les caractères mal formés commencent à la position de la mémoire tampon d’entrée (éventuellement incrémentée) ; le nombre de caractères mal formés peut être déterminé en appelant la méthode de l’objet CoderResult#length() length résultat. Ce cas s’applique uniquement si la #onMalformedInput action incorrecte de cet encodeur est CodingErrorAction#REPORT; sinon l’entrée incorrecte sera ignorée ou remplacée, comme demandé.

</li>

<li>

Un résultat coderResult#unmappableForLength unmappable-character indique qu’une erreur unmappable-character a été détectée. Les caractères qui encodent le caractère non modifiable commencent à la position de la mémoire tampon d’entrée (éventuellement incrémentée) ; le nombre de ces caractères peut être déterminé en appelant la méthode de l’objet CoderResult#length() length résultat. Ce cas s’applique uniquement si l’action #onUnmappableCharacter inappable de cet encodeur est CodingErrorAction#REPORT; sinon, le caractère inappable sera ignoré ou remplacé, comme demandé.

</li>

</ul>

Dans tous les cas, si cette méthode doit être réinvoque dans la même opération d’encodage, veillez à conserver les caractères restants dans la mémoire tampon d’entrée afin qu’ils soient disponibles pour l’appel suivant.

Le endOfInput paramètre conseille cette méthode de savoir si l’appelant peut fournir une entrée supplémentaire au-delà de celle contenue dans la mémoire tampon d’entrée donnée. S’il existe une possibilité de fournir une entrée supplémentaire, l’appelant doit passer false pour ce paramètre ; s’il n’est pas possible de fournir une entrée supplémentaire, l’appelant doit passer true. Il n’est pas erroné, et en fait il est assez courant, de passer false un appel et de découvrir ultérieurement qu’aucune autre entrée n’a été réellement disponible. Toutefois, il est essentiel que l’appel final de cette méthode dans une séquence d’appels passe true toujours afin que toute entrée non codée restante soit traitée comme étant incorrecte.

Cette méthode fonctionne en appelant la #encodeLoop encodeLoop méthode, en interprétant ses résultats, en gérant les conditions d’erreur et en la révoquant si nécessaire.

Documentation Java pour java.nio.charset.CharsetEncoder.encode(java.nio.CharBuffer, java.nio.ByteBuffer, boolean).

Les parties de cette page sont des modifications basées sur le travail créé et partagé par le projet Android Open Source et utilisés en fonction des termes décrits dans la licence d’attribution Creative Commons 2.5.

S’applique à