Decoder Classe

Définition

Convertit une séquence d’octets encodés en un ensemble de caractères.

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
Héritage
Decoder
Attributs

Exemples

L’exemple suivant illustre l’utilisation d’un Decoder pour convertir deux tableaux d’octets différents en tableau de caractères. L’un des octets du caractère s’étend sur les tableaux. Cela est similaire à ce qu’un StreamReader objet fait en interne lors de la lecture d’un flux.

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

Remarques

Pour obtenir une instance d’une implémentation de la Decoder classe, appelez la GetDecoder méthode d’une Encoding implémentation.

La GetCharCount méthode détermine le nombre de caractères qui entraînent le décodage d’une séquence d’octets, et la GetChars méthode effectue le décodage réel. Il existe plusieurs versions de ces deux méthodes disponibles dans la Decoder classe. Pour plus d’informations, consultez Encoding.GetChars. Un Decoder objet conserve des informations d’état entre les appels successifs ou GetCharsConvert les méthodes afin qu’il puisse décoder correctement des séquences d’octets qui s’étendent sur des blocs. Il Decoder conserve également les octets de fin à la fin des blocs de données et utilise les octets de fin dans l’opération de décodage suivante. Par conséquent, GetDecoder et GetEncoder sont utiles pour les opérations de transmission et de fichier réseau, car ces opérations traitent souvent des blocs de données au lieu d’un flux de données complet.

Note

Lorsque l’application a terminé avec un flux de données, elle doit s’assurer que les informations d’état sont vidées en définissant le flush paramètre true sur dans l’appel de méthode approprié. Si une exception se produit ou si l’application change de flux, elle doit appeler Reset pour effacer l’état interne de l’objet Decoder .

Notes pour les responsables de l’implémentation

Lorsque votre application hérite de cette classe, elle doit remplacer tous les membres.

Constructeurs

Nom Description
Decoder()

Initialise une nouvelle instance de la classe Decoder.

Propriétés

Nom Description
Fallback

Obtient ou définit un DecoderFallback objet pour l’objet actif Decoder .

FallbackBuffer

Obtient l’objet DecoderFallbackBuffer associé à l’objet actuel Decoder .

Méthodes

Nom Description
Convert(Byte[], Int32, Int32, Char[], Int32, Int32, Boolean, Int32, Int32, Boolean)

Convertit un tableau d’octets encodés en caractères codés en UTF-16 et stocke le résultat dans un tableau de caractères.

Convert(Byte*, Int32, Char*, Int32, Boolean, Int32, Int32, Boolean)

Convertit une mémoire tampon d’octets encodés en caractères codés en UTF-16 et stocke le résultat dans une autre mémoire tampon.

Convert(ReadOnlySpan<Byte>, Span<Char>, Boolean, Int32, Int32, Boolean)

Convertit une étendue d’octets encodés en caractères codés en UTF-16 et stocke le résultat dans une autre mémoire tampon d’étendue.

Equals(Object)

Détermine si l’objet spécifié est égal à l’objet actuel.

(Hérité de Object)
GetCharCount(Byte[], Int32, Int32, Boolean)

En cas de substitution dans une classe dérivée, calcule le nombre de caractères produits par le décodage d’une séquence d’octets à partir du tableau d’octets spécifié. Un paramètre indique s’il faut effacer l’état interne du décodeur après le calcul.

GetCharCount(Byte[], Int32, Int32)

En cas de substitution dans une classe dérivée, calcule le nombre de caractères produits par le décodage d’une séquence d’octets à partir du tableau d’octets spécifié.

GetCharCount(Byte*, Int32, Boolean)

En cas de substitution dans une classe dérivée, calcule le nombre de caractères produits par le décodage d’une séquence d’octets commençant au pointeur d’octet spécifié. Un paramètre indique s’il faut effacer l’état interne du décodeur après le calcul.

GetCharCount(ReadOnlySpan<Byte>, Boolean)

En cas de substitution dans une classe dérivée, calcule le nombre de caractères produits par le décodage de la séquence d’octets dans l’étendue. Un paramètre indique s’il faut effacer l’état interne du décodeur après le calcul.

GetChars(Byte[], Int32, Int32, Char[], Int32, Boolean)

En cas de substitution dans une classe dérivée, décode une séquence d’octets à partir du tableau d’octets spécifié et de tous les octets de la mémoire tampon interne dans le tableau de caractères spécifié. Un paramètre indique s’il faut effacer l’état interne du décodeur après la conversion.

GetChars(Byte[], Int32, Int32, Char[], Int32)

En cas de substitution dans une classe dérivée, décode une séquence d’octets à partir du tableau d’octets spécifié et de tous les octets de la mémoire tampon interne dans le tableau de caractères spécifié.

GetChars(Byte*, Int32, Char*, Int32, Boolean)

En cas de substitution dans une classe dérivée, décode une séquence d’octets commençant par le pointeur d’octet spécifié et les octets de la mémoire tampon interne dans un ensemble de caractères stockés à partir du pointeur de caractères spécifié. Un paramètre indique s’il faut effacer l’état interne du décodeur après la conversion.

GetChars(ReadOnlySpan<Byte>, Span<Char>, Boolean)

En cas de substitution dans une classe dérivée, décode une séquence d’octets d’étendue et d’octets dans la mémoire tampon interne dans un ensemble de caractères stockés à partir du pointeur de caractères spécifié. Un paramètre indique s’il faut effacer l’état interne du décodeur après la conversion.

GetHashCode()

Sert de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient la Type de l’instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Objectactuel.

(Hérité de Object)
Reset()

En cas de substitution dans une classe dérivée, définit le décodeur sur son état initial.

ToString()

Retourne une chaîne qui représente l’objet actuel.

(Hérité de Object)

S’applique à

Voir aussi