CharsetEncoder.Encode Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Sobrecargas
| Nombre | Description |
|---|---|
| Encode(CharBuffer) |
Método de conveniencia que codifica el contenido restante de un único búfer de caracteres de entrada en un búfer de bytes recién asignado. |
| Encode(CharBuffer, ByteBuffer, Boolean) |
Codifica tantos caracteres como sea posible desde el búfer de entrada especificado, escribiendo los resultados en el búfer de salida especificado. |
Encode(CharBuffer)
Método de conveniencia que codifica el contenido restante de un único búfer de caracteres de entrada en un búfer de bytes recién asignado.
[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
Búfer de caracteres de entrada
Devoluciones
Un búfer de bytes recién asignado que contiene el resultado de la operación de codificación. La posición del búfer será cero y su límite seguirá el último byte escrito.
- Atributos
Excepciones
si otra operación de codificación está en curso.
si se encuentra una secuencia de caracteres de entrada no válida para este conjunto de caracteres y la acción para el error con formato incorrecto es Report
si se encuentra una secuencia de caracteres de entrada legal pero no aplicable para este conjunto de caracteres, y la acción para un error de carácter no aplicable es Report. Unmappable significa que la secuencia de caracteres Unicode en la posición actual del búfer de entrada no se puede asignar a una secuencia de bytes equivalente.
si se produjo otra excepción durante la operación de codificación.
Comentarios
Método de conveniencia que codifica el contenido restante de un único búfer de caracteres de entrada en un búfer de bytes recién asignado.
Este método implementa una operación de codificación completa; es decir, restablece este codificador, codifica los caracteres en el búfer de caracteres especificado y, por último, vacía este codificador. Por lo tanto, este método no debe invocarse si una operación de codificación ya está en curso.
Java documentación para java.nio.charset.CharsetEncoder.encode(java.nio.CharBuffer).
Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.
Se aplica a
Encode(CharBuffer, ByteBuffer, Boolean)
Codifica tantos caracteres como sea posible desde el búfer de entrada especificado, escribiendo los resultados en el búfer de salida especificado.
[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
Búfer de caracteres de entrada
- out
- ByteBuffer
Búfer de bytes de salida
- endOfInput
- Boolean
true si, y solo si, el invocador no puede proporcionar caracteres de entrada adicionales más allá de los del búfer especificado.
Devoluciones
Objeto coder-result que describe el motivo de la terminación
- Atributos
Excepciones
si la operación de codificación ya se ha iniciado o no se necesita más entradas en este proceso de codificación.
Si el EncodeLoop(CharBuffer, ByteBuffer) método produjo o BufferUnderflowExceptionBufferUnderflowException.
Comentarios
Codifica tantos caracteres como sea posible desde el búfer de entrada especificado, escribiendo los resultados en el búfer de salida especificado.
Los búferes se leen y se escriben en, empezando por sus posiciones actuales. Como máximo Buffer#remaining in.remaining() , se leerán los caracteres y se escribirán como máximo Buffer#remaining out.remaining() bytes. Las posiciones de los búferes se avanzarán para reflejar los caracteres leídos y los bytes escritos, pero sus marcas y límites no se modificarán.
Además de leer caracteres del búfer de entrada y escribir bytes en el búfer de salida, este método devuelve un CoderResult objeto para describir su motivo de finalización:
<ul>
<li>
CoderResult#UNDERFLOW indica que se ha codificado tanto el búfer de entrada como sea posible. Si no hay ninguna entrada adicional, el invocador puede continuar con el paso siguiente de la operación de codificación. De lo contrario, se debe invocar de nuevo este método con una entrada adicional.
</li>
<li>
CoderResult#OVERFLOW indica que no hay espacio suficiente en el búfer de salida para codificar más caracteres. Este método se debe invocar de nuevo con un búfer de salida que tenga más bytes restantes de Buffer#. Normalmente, esto se hace purgando los bytes codificados desde el búfer de salida.
</li>
<li>
Un resultado de entrada con formato incorrecto CoderResult#malformedForLength indica que se ha detectado un error de entrada con formato incorrecto. Los caracteres con formato incorrecto comienzan en la posición (posiblemente incrementada) del búfer de entrada; El número de caracteres con formato incorrecto puede determinarse invocando el método del objeto de CoderResult#length() length resultado. Este caso solo se aplica si el #onMalformedInput acción con formato incorrecto de este codificador es CodingErrorAction#REPORT; de lo contrario, la entrada con formato incorrecto se omitirá o reemplazará, según se solicite.
</li>
<li>
Un resultado de CoderResult#unmappableForLength unmappable-character indica que se ha detectado un error de carácter no aplicable. Los caracteres que codifican el carácter no aplicable comienzan en la posición (posiblemente incrementada) del búfer de entrada; el número de estos caracteres se puede determinar invocando el método del objeto de CoderResult#length() length resultado. Este caso solo se aplica si el #onUnmappableCharacter acción inaplicable de este codificador es CodingErrorAction#REPORT; de lo contrario, el carácter no aplicable se omitirá o reemplazará, según se solicite.
</li>
</ul>
En cualquier caso, si este método se va a volver a invocar en la misma operación de codificación, se debe tener cuidado para conservar los caracteres restantes en el búfer de entrada para que estén disponibles para la siguiente invocación.
El endOfInput parámetro aconseja a este método si el invocador puede proporcionar una entrada adicional más allá de la contenida en el búfer de entrada especificado. Si existe la posibilidad de proporcionar una entrada adicional, el invocador debe pasar para este parámetro; si no hay ninguna posibilidad de proporcionar más entrada, el invocador debe pasar falsetrue. No es erróneo y, de hecho, es bastante común pasar false una invocación y más adelante descubrir que ninguna entrada adicional estaba realmente disponible. Sin embargo, es fundamental que la invocación final de este método en una secuencia de invocaciones siempre pase true para que cualquier entrada no codificada restante se trate como con formato incorrecto.
Este método funciona invocando el #encodeLoop encodeLoop método , interpretando sus resultados, controlando las condiciones de error y invocando de nuevo según sea necesario.
Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.