CharsetEncoder.Encode Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Sobrecargas
| Nome | Description |
|---|---|
| Encode(CharBuffer) |
Método de conveniência que codifica o conteúdo restante de um único buffer de caracteres de entrada em um buffer de bytes recém-alocado. |
| Encode(CharBuffer, ByteBuffer, Boolean) |
Codifica o máximo de caracteres possível do buffer de entrada fornecido, gravando os resultados no buffer de saída fornecido. |
Encode(CharBuffer)
Método de conveniência que codifica o conteúdo restante de um único buffer de caracteres de entrada em um buffer de bytes recém-alocado.
[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
Parâmetros
- in
- CharBuffer
O buffer de caracteres de entrada
Retornos
Um buffer de bytes recém-alocado que contém o resultado da operação de codificação. A posição do buffer será zero e seu limite seguirá o último byte gravado.
- Atributos
Exceções
se outra operação de codificação estiver em andamento.
se uma sequência de caracteres de entrada ilegal para esse conjunto de caracteres for encontrada e a ação para erro malformado for Report
se uma sequência de caracteres de entrada legal, mas inaplicaível para esse conjunto de caracteres for encontrada, e a ação para erro de caractere inaplicaível for Report. Inaplicativo significa que a sequência de caracteres Unicode na posição atual do buffer de entrada não pode ser mapeada para uma sequência de bytes equivalente.
se outra exceção ocorreu durante a operação de codificação.
Comentários
Método de conveniência que codifica o conteúdo restante de um único buffer de caracteres de entrada em um buffer de bytes recém-alocado.
Esse método implementa uma operação de codificação inteira; ou seja, ele redefine esse codificador, em seguida, codifica os caracteres no buffer de caracteres fornecido e, por fim, libera esse codificador. Portanto, esse método não deverá ser invocado se uma operação de codificação já estiver em andamento.
Documentação Java para java.nio.charset.CharsetEncoder.encode(java.nio.CharBuffer).
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usadas de acordo com os termos descritos na Licença de Atribuição Creative Commons 2.5.
Aplica-se a
Encode(CharBuffer, ByteBuffer, Boolean)
Codifica o máximo de caracteres possível do buffer de entrada fornecido, gravando os resultados no buffer de saída fornecido.
[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
Parâmetros
- in
- CharBuffer
O buffer de caracteres de entrada
- out
- ByteBuffer
O buffer de bytes de saída
- endOfInput
- Boolean
true se, e somente se, o invocador não puder fornecer caracteres de entrada adicionais além daqueles no buffer fornecido
Retornos
Um objeto de resultado do codificador que descreve o motivo do encerramento
- Atributos
Exceções
se a operação de codificação já tiver sido iniciada ou se nenhuma entrada for necessária nesse processo de codificação.
Se o EncodeLoop(CharBuffer, ByteBuffer) método tiver jogado um BufferUnderflowException ou BufferUnderflowException.
Comentários
Codifica o máximo de caracteres possível do buffer de entrada fornecido, gravando os resultados no buffer de saída fornecido.
Os buffers são lidos e gravados em suas posições atuais. No máximo Buffer#remaining in.remaining() , os caracteres serão lidos e, no máximo Buffer#remaining out.remaining() , bytes serão escritos. As posições dos buffers serão avançadas para refletir os caracteres lidos e os bytes gravados, mas suas marcas e limites não serão modificados.
Além de ler caracteres do buffer de entrada e gravar bytes no buffer de saída, esse método retorna um CoderResult objeto para descrever seu motivo de término:
<ul>
<li>
CoderResult#UNDERFLOW indica que o máximo possível do buffer de entrada foi codificado. Se não houver nenhuma entrada adicional, o invocador poderá prosseguir para a próxima etapa da operação de codificação. Caso contrário, esse método deve ser invocado novamente com entrada adicional.
</li>
<li>
CoderResult#OVERFLOW indica que não há espaço suficiente no buffer de saída para codificar mais caracteres. Esse método deve ser invocado novamente com um buffer de saída que tenha mais buffer#restantes bytes restantes. Normalmente, isso é feito drenando os bytes codificados do buffer de saída.
</li>
<li>
Um resultado de entrada malformedForLength de CoderResult#malformed indica que um erro de entrada malformada foi detectado. Os caracteres malformados começam na posição do buffer de entrada (possivelmente incrementado) ; o número de caracteres malformados pode ser determinado invocando o método do objeto de CoderResult#length() length resultado. Esse caso se aplicará somente se a ação malformada #onMalformedInput desse codificador for CodingErrorAction#REPORT; caso contrário, a entrada malformada será ignorada ou substituída, conforme solicitado.
</li>
<li>
Um resultado coderResult#unmappableForLength unmappable-character indica que um erro de caractere inaplicaível foi detectado. Os caracteres que codificam o caractere inaplicaível começam na posição do buffer de entrada (possivelmente incrementado) ; o número desses caracteres pode ser determinado invocando o método do objeto de CoderResult#length() length resultado. Esse caso só se aplica se o #onUnmappableCharacter ação inaplicaível desse codificador for CodingErrorAction#REPORT; caso contrário, o caractere inaplicaível será ignorado ou substituído, conforme solicitado.
</li>
</ul>
De qualquer forma, se esse método deve ser reenvoado na mesma operação de codificação, deve-se tomar cuidado para preservar os caracteres restantes no buffer de entrada para que eles estejam disponíveis para a próxima invocação.
O endOfInput parâmetro aconselha esse método sobre se o invocador pode fornecer mais entradas além daquela contida no buffer de entrada fornecido. Se houver a possibilidade de fornecer entrada adicional, o invocador deverá passar false para esse parâmetro; se não houver nenhuma possibilidade de fornecer mais entradas, o invocador deverá passar true. Não é incorreto e, na verdade, é bastante comum passar false uma invocação e depois descobrir que nenhuma entrada adicional estava realmente disponível. No entanto, é fundamental que a invocação final desse método em uma sequência de invocações sempre passe true para que qualquer entrada não codificada restante seja tratada como malformada.
Esse método funciona invocando o #encodeLoop encodeLoop método, interpretando seus resultados, tratando condições de erro e invocando-o novamente conforme necessário.
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usadas de acordo com os termos descritos na Licença de Atribuição Creative Commons 2.5.