Decoder Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Converte uma sequência de bytes codificados num 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
- Herança
-
Decoder
- Atributos
Exemplos
O exemplo seguinte demonstra o uso de a Decoder para converter dois arrays de bytes diferentes num array de caracteres. Um dos bytes da personagem abrange os arrays. Isto é semelhante ao que um StreamReader objeto faz internamente ao ler um fluxo.
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
Observações
Para obter uma instância de uma implementação da Decoder classe, chame-se o GetDecoder método de uma Encoding implementação.
O GetCharCount método determina quantos caracteres resultam na decodificação de uma sequência de bytes, e o GetChars método realiza a decodificação propriamente dita. Existem várias versões de ambos os métodos disponíveis na Decoder aula. Para obter mais informações, veja Encoding.GetChars. Um Decoder objeto mantém informação de estado entre chamadas sucessivas a GetChars métodos ou Convert para poder decodificar corretamente sequências de bytes que abrangem blocos. Também Decoder preserva os bytes finais no final dos blocos de dados e utiliza os bytes finais na próxima operação de descodificação. Portanto, GetDecoder e GetEncoder são úteis para transmissão em rede e operações de ficheiros porque essas operações frequentemente lidam com blocos de dados em vez de um fluxo de dados completo.
Note
Quando a aplicação é feita com um fluxo de dados, deve garantir que a informação de estado é limpa, definindo o flush parâmetro como true na chamada de método apropriada. Se ocorrer uma exceção ou se a aplicação mudar de fluxo, deve chamar Reset para limpar o estado interno do Decoder objeto.
Notas para Implementadores
Quando a sua candidatura herda desta classe, deve sobrepor-se a todos os membros.
Construtores
| Name | Description |
|---|---|
| Decoder() |
Inicializa uma nova instância da Decoder classe. |
Propriedades
| Name | Description |
|---|---|
| Fallback |
Obtém ou define um DecoderFallback objeto para o objeto atual Decoder . |
| FallbackBuffer |
Obtém o DecoderFallbackBuffer objeto associado ao objeto atual Decoder . |
Métodos
| Name | Description |
|---|---|
| Convert(Byte[], Int32, Int32, Char[], Int32, Int32, Boolean, Int32, Int32, Boolean) |
Converte um array de bytes codificados para caracteres codificados em UTF-16 e armazena o resultado num array de caracteres. |
| Convert(Byte*, Int32, Char*, Int32, Boolean, Int32, Int32, Boolean) |
Converte um buffer de bytes codificados em caracteres codificados UTF-16 e armazena o resultado noutro buffer. |
| Convert(ReadOnlySpan<Byte>, Span<Char>, Boolean, Int32, Int32, Boolean) |
Converte um intervalo de bytes codificados em caracteres codificados em UTF-16 e armazena o resultado noutro buffer de expansão. |
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| GetCharCount(Byte[], Int32, Int32, Boolean) |
Quando sobrescrito numa classe derivada, calcula o número de caracteres produzidos pela decodificação de uma sequência de bytes a partir do array de bytes especificado. Um parâmetro indica se deve limpar o estado interno do descodificador após o cálculo. |
| GetCharCount(Byte[], Int32, Int32) |
Quando sobrescrito numa classe derivada, calcula o número de caracteres produzidos pela decodificação de uma sequência de bytes a partir do array de bytes especificado. |
| GetCharCount(Byte*, Int32, Boolean) |
Quando sobrescrito numa classe derivada, calcula o número de caracteres produzidos ao decodificar uma sequência de bytes começando no ponteiro de byte especificado. Um parâmetro indica se deve limpar o estado interno do descodificador após o cálculo. |
| GetCharCount(ReadOnlySpan<Byte>, Boolean) |
Quando sobrescrito numa classe derivada, calcula o número de caracteres produzidos pela decodificação da sequência de bytes no intervalo. Um parâmetro indica se deve limpar o estado interno do descodificador após o cálculo. |
| GetChars(Byte[], Int32, Int32, Char[], Int32, Boolean) |
Quando sobrescrito numa classe derivada, decodifica uma sequência de bytes do array de bytes especificado e quaisquer bytes no buffer interno para o array de caracteres especificado. Um parâmetro indica se deve limpar o estado interno do descodificador após a conversão. |
| GetChars(Byte[], Int32, Int32, Char[], Int32) |
Quando sobrescrito numa classe derivada, decodifica uma sequência de bytes do array de bytes especificado e quaisquer bytes no buffer interno para o array de caracteres especificado. |
| GetChars(Byte*, Int32, Char*, Int32, Boolean) |
Quando sobrescrito numa classe derivada, decodifica uma sequência de bytes começando no ponteiro de bytes especificado e quaisquer bytes no buffer interno num conjunto de caracteres que são armazenados a partir do ponteiro especificado. Um parâmetro indica se deve limpar o estado interno do descodificador após a conversão. |
| GetChars(ReadOnlySpan<Byte>, Span<Char>, Boolean) |
Quando sobrescrito numa classe derivada, decodifica uma sequência de bytes de expansão e quaisquer bytes no buffer interno num conjunto de caracteres que são armazenados a partir do ponteiro especificado. Um parâmetro indica se deve limpar o estado interno do descodificador após a conversão. |
| GetHashCode() |
Serve como função de hash predefinida. (Herdado de Object) |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| Reset() |
Quando sobrescrito numa classe derivada, o descodificador volta ao seu estado inicial. |
| ToString() |
Devolve uma cadeia que representa o objeto atual. (Herdado de Object) |