Decoder Clase
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í.
Convierte una secuencia de bytes codificados en un conjunto de caracteres.
public ref class Decoder abstract
public abstract class Decoder
[System.Serializable]
public abstract class Decoder
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class Decoder
type Decoder = class
[<System.Serializable>]
type Decoder = class
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type Decoder = class
Public MustInherit Class Decoder
- Herencia
-
Decoder
- Atributos
Ejemplos
En el ejemplo siguiente se muestra el uso de para Decoder convertir dos matrices de bytes diferentes en una matriz de caracteres. Uno de los bytes del carácter abarca las matrices. Esto es similar a lo que hace un StreamReader objeto internamente al leer una secuencia.
using System;
using System.Text;
public class dec
{
public static void Main()
{
// These bytes in UTF-8 correspond to 3 different Unicode
// characters: space (U+0020), # (U+0023), and the biohazard
// symbol (U+2623). Note the biohazard symbol requires 3 bytes
// in UTF-8 (hexadecimal e2, 98, a3). Decoders store state across
// multiple calls to GetChars, handling the case when one char
// is in multiple byte arrays.
byte[] bytes1 = { 0x20, 0x23, 0xe2 };
byte[] bytes2 = { 0x98, 0xa3 };
char[] chars = new char[3];
Decoder d = Encoding.UTF8.GetDecoder();
int charLen = d.GetChars(bytes1, 0, bytes1.Length, chars, 0);
// The value of charLen should be 2 now.
charLen += d.GetChars(bytes2, 0, bytes2.Length, chars, charLen);
foreach(char c in chars)
Console.Write("U+{0:X4} ", (ushort)c);
}
}
Imports System.Text
Public Class dec
Public Shared Sub Main()
' These bytes in UTF-8 correspond to 3 different Unicode
' characters: space (U+0020), # (U+0023), and the biohazard
' symbol (U+2623). Note the biohazard symbol requires 3 bytes
' in UTF-8 (hexadecimal e2, 98, a3). Decoders store state across
' multiple calls to GetChars, handling the case when one char
' is in multiple byte arrays.
Dim bytes1 As Byte() = {&H20, &H23, &HE2}
Dim bytes2 As Byte() = {&H98, &HA3}
Dim chars(3) As Char
Dim d As Decoder = Encoding.UTF8.GetDecoder()
Dim charLen As Integer = d.GetChars(bytes1, 0, bytes1.Length, chars, 0)
' The value of charLen should be 2 now.
charLen += d.GetChars(bytes2, 0, bytes2.Length, chars, charLen)
Dim c As Char
For Each c In chars
Console.Write("U+{0:X4} ", Convert.ToUInt16(c) )
Next c
End Sub
End Class
Comentarios
Para obtener una instancia de una implementación de la Decoder clase , llame al GetDecoder método de una Encoding implementación.
El GetCharCount método determina cuántos caracteres producen la descodificación de una secuencia de bytes y el GetChars método realiza la descodificación real. Hay varias versiones de estos métodos disponibles en la Decoder clase . Para obtener más información, consulte Encoding.GetChars. Un Decoder objeto mantiene información de estado entre llamadas sucesivas a GetChars métodos o Convert para que pueda descodificar correctamente las secuencias de bytes que abarcan bloques.
Decoder También conserva los bytes finales al final de los bloques de datos y usa los bytes finales en la siguiente operación de descodificación. Por lo tanto, GetDecoder y GetEncoder son útiles para las operaciones de transmisión de red y archivos, ya que esas operaciones suelen tratar con bloques de datos en lugar de un flujo de datos completo.
Note
Cuando la aplicación se realiza con un flujo de datos, debe asegurarse de que la información de estado se vacía estableciendo el flush parámetro true en en la llamada al método adecuado. Si se produce una excepción o si la aplicación cambia de flujo, debe llamar Reset a para borrar el estado interno del Decoder objeto.
Notas a los implementadores
Cuando la aplicación hereda de esta clase, debe invalidar todos los miembros.
Constructores
| Nombre | Description |
|---|---|
| Decoder() |
Inicializa una nueva instancia de la clase Decoder. |
Propiedades
| Nombre | Description |
|---|---|
| Fallback |
Obtiene o establece un DecoderFallback objeto para el objeto actual Decoder . |
| FallbackBuffer |
Obtiene el DecoderFallbackBuffer objeto asociado al objeto actual Decoder . |
Métodos
| Nombre | Description |
|---|---|
| Convert(Byte[], Int32, Int32, Char[], Int32, Int32, Boolean, Int32, Int32, Boolean) |
Convierte una matriz de bytes codificados en caracteres codificados UTF-16 y almacena el resultado en una matriz de caracteres. |
| Convert(Byte*, Int32, Char*, Int32, Boolean, Int32, Int32, Boolean) |
Convierte un búfer de bytes codificados en caracteres codificados UTF-16 y almacena el resultado en otro búfer. |
| Convert(ReadOnlySpan<Byte>, Span<Char>, Boolean, Int32, Int32, Boolean) |
Convierte un intervalo de bytes codificados en caracteres codificados UTF-16 y almacena el resultado en otro búfer de intervalo. |
| Equals(Object) |
Determina si el objeto especificado es igual al objeto actual. (Heredado de Object) |
| GetCharCount(Byte[], Int32, Int32, Boolean) |
Cuando se reemplaza en una clase derivada, calcula el número de caracteres generados al descodificar una secuencia de bytes de la matriz de bytes especificada. Un parámetro indica si se borra el estado interno del descodificador después del cálculo. |
| GetCharCount(Byte[], Int32, Int32) |
Cuando se reemplaza en una clase derivada, calcula el número de caracteres generados al descodificar una secuencia de bytes de la matriz de bytes especificada. |
| GetCharCount(Byte*, Int32, Boolean) |
Cuando se reemplaza en una clase derivada, calcula el número de caracteres producidos al descodificar una secuencia de bytes a partir del puntero de bytes especificado. Un parámetro indica si se borra el estado interno del descodificador después del cálculo. |
| GetCharCount(ReadOnlySpan<Byte>, Boolean) |
Cuando se reemplaza en una clase derivada, calcula el número de caracteres generados al descodificar la secuencia de bytes del intervalo. Un parámetro indica si se borra el estado interno del descodificador después del cálculo. |
| GetChars(Byte[], Int32, Int32, Char[], Int32, Boolean) |
Cuando se reemplaza en una clase derivada, descodifica una secuencia de bytes de la matriz de bytes especificada y cualquier bytes del búfer interno en la matriz de caracteres especificada. Un parámetro indica si se borra el estado interno del descodificador después de la conversión. |
| GetChars(Byte[], Int32, Int32, Char[], Int32) |
Cuando se reemplaza en una clase derivada, descodifica una secuencia de bytes de la matriz de bytes especificada y cualquier bytes del búfer interno en la matriz de caracteres especificada. |
| GetChars(Byte*, Int32, Char*, Int32, Boolean) |
Cuando se reemplaza en una clase derivada, descodifica una secuencia de bytes a partir del puntero de bytes especificado y cualquier bytes del búfer interno en un conjunto de caracteres que se almacenan a partir del puntero de caracteres especificado. Un parámetro indica si se borra el estado interno del descodificador después de la conversión. |
| GetChars(ReadOnlySpan<Byte>, Span<Char>, Boolean) |
Cuando se reemplaza en una clase derivada, descodifica una secuencia de bytes de intervalo y cualquier bytes del búfer interno en un conjunto de caracteres que se almacenan a partir del puntero de caracteres especificado. Un parámetro indica si se borra el estado interno del descodificador después de la conversión. |
| GetHashCode() |
Actúa como la función hash predeterminada. (Heredado de Object) |
| GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
| MemberwiseClone() |
Crea una copia superficial del Objectactual. (Heredado de Object) |
| Reset() |
Cuando se invalida en una clase derivada, vuelve a establecer el descodificador en su estado inicial. |
| ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |