Decoder.GetChars Méthode

Définition

En cas de substitution dans une classe dérivée, décode une séquence d’octets en un ensemble de caractères.

Surcharges

Nom Description
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.

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(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, 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(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.

public:
 virtual int GetChars(ReadOnlySpan<System::Byte> bytes, Span<char> chars, bool flush);
public virtual int GetChars(ReadOnlySpan<byte> bytes, Span<char> chars, bool flush);
abstract member GetChars : ReadOnlySpan<byte> * Span<char> * bool -> int
override this.GetChars : ReadOnlySpan<byte> * Span<char> * bool -> int
Public Overridable Function GetChars (bytes As ReadOnlySpan(Of Byte), chars As Span(Of Char), flush As Boolean) As Integer

Paramètres

bytes
ReadOnlySpan<Byte>

Étendue d’octets à décoder.

chars
Span<Char>

Étendue permettant d’écrire le jeu de caractères résultant.

flush
Boolean

true pour effacer l’état interne du décodeur après la conversion ; sinon, false.

Retours

Nombre réel de caractères écrits à l’étendue indiquée par le chars paramètre.

Remarques

N’oubliez pas que l’objet enregistre l’état Decoder entre les appels à GetChars. Une fois l’application terminée avec un flux de données, elle doit définir le flush paramètre pour true s’assurer que les informations d’état sont vidées. Avec ce paramètre, le décodeur ignore les octets non valides à la fin du bloc de données et efface la mémoire tampon interne.

Pour calculer la taille exacte de l’étendue requise GetChars pour stocker les caractères résultants, l’application doit utiliser GetCharCount.

Si GetChars elle est appelée avec flush la valeur définie false, le décodeur stocke les octets de fin à la fin du bloc de données dans une mémoire tampon interne et les utilise dans l’opération de décodage suivante. L’application doit appeler GetCharCount un bloc de données immédiatement avant d’appeler GetChars sur le même bloc, afin que les octets de fin du bloc précédent soient inclus dans le calcul.

Si votre application consiste à convertir de nombreux segments d’un flux d’entrée, envisagez d’utiliser la Convert méthode. GetChars lève une exception si l’étendue de sortie n’est pas suffisamment grande, mais Convert remplit autant d’espace que possible et retourne les octets lus et les caractères écrits, à condition que le tableau de sortie autorise au moins deux caractères. Consultez également la Encoding.GetChars rubrique pour plus de commentaires.

S’applique à

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

Important

Cette API n’est pas conforme CLS.

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.

public:
 virtual int GetChars(System::Byte* bytes, int byteCount, char* chars, int charCount, bool flush);
[System.CLSCompliant(false)]
[System.Runtime.InteropServices.ComVisible(false)]
public virtual int GetChars(byte* bytes, int byteCount, char* chars, int charCount, bool flush);
[System.CLSCompliant(false)]
[System.Runtime.InteropServices.ComVisible(false)]
[System.Security.SecurityCritical]
public virtual int GetChars(byte* bytes, int byteCount, char* chars, int charCount, bool flush);
[System.CLSCompliant(false)]
public virtual int GetChars(byte* bytes, int byteCount, char* chars, int charCount, bool flush);
[<System.CLSCompliant(false)>]
[<System.Runtime.InteropServices.ComVisible(false)>]
abstract member GetChars : nativeptr<byte> * int * nativeptr<char> * int * bool -> int
override this.GetChars : nativeptr<byte> * int * nativeptr<char> * int * bool -> int
[<System.CLSCompliant(false)>]
[<System.Runtime.InteropServices.ComVisible(false)>]
[<System.Security.SecurityCritical>]
abstract member GetChars : nativeptr<byte> * int * nativeptr<char> * int * bool -> int
override this.GetChars : nativeptr<byte> * int * nativeptr<char> * int * bool -> int
[<System.CLSCompliant(false)>]
abstract member GetChars : nativeptr<byte> * int * nativeptr<char> * int * bool -> int
override this.GetChars : nativeptr<byte> * int * nativeptr<char> * int * bool -> int

Paramètres

bytes
Byte*

Pointeur vers le premier octet à décoder.

byteCount
Int32

Nombre d’octets à décoder.

chars
Char*

Pointeur vers l’emplacement auquel commencer l’écriture du jeu de caractères résultant.

charCount
Int32

Nombre maximal de caractères à écrire.

flush
Boolean

true pour effacer l’état interne du décodeur après la conversion ; sinon, false.

Retours

Nombre réel de caractères écrits à l’emplacement indiqué par le chars paramètre.

Attributs

Exceptions

bytes est null (Nothing).

-ou-

chars est null (Nothing).

byteCount ou charCount est inférieur à zéro.

charCount est inférieur au nombre de caractères résultant.

Un secours s’est produit (pour plus d’informations, consultez Encodage de caractères dans .NET)

-et-

Fallback a la valeur DecoderExceptionFallback.

Remarques

N’oubliez pas que l’objet enregistre l’état Decoder entre les appels à GetChars. Une fois l’application terminée avec un flux de données, elle doit définir le flush paramètre pour true s’assurer que les informations d’état sont vidées. Avec ce paramètre, le décodeur ignore les octets non valides à la fin du bloc de données et efface la mémoire tampon interne.

Pour calculer la taille exacte de la mémoire tampon qui GetChars nécessite de stocker les caractères résultants, l’application doit utiliser GetCharCount.

Si GetChars elle est appelée avec flush la valeur définie false, le décodeur stocke les octets de fin à la fin du bloc de données dans une mémoire tampon interne et les utilise dans l’opération de décodage suivante. L’application doit appeler GetCharCount un bloc de données immédiatement avant d’appeler GetChars sur le même bloc, afin que les octets de fin du bloc précédent soient inclus dans le calcul.

Si votre application consiste à convertir de nombreux segments d’un flux d’entrée, envisagez d’utiliser la Convert méthode. GetChars lève une exception si la mémoire tampon de sortie n’est pas suffisamment grande, mais Convert remplit autant d’espace que possible et retourne les octets lus et les caractères écrits, à condition que le tableau de sortie autorise au moins deux caractères. Consultez également la Encoding.GetChars rubrique pour plus de commentaires.

Voir aussi

S’applique à

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é.

public:
 abstract int GetChars(cli::array <System::Byte> ^ bytes, int byteIndex, int byteCount, cli::array <char> ^ chars, int charIndex);
public abstract int GetChars(byte[] bytes, int byteIndex, int byteCount, char[] chars, int charIndex);
abstract member GetChars : byte[] * int * int * char[] * int -> int
Public MustOverride Function GetChars (bytes As Byte(), byteIndex As Integer, byteCount As Integer, chars As Char(), charIndex As Integer) As Integer

Paramètres

bytes
Byte[]

Tableau d’octets contenant la séquence d’octets à décoder.

byteIndex
Int32

Index du premier octet à décoder.

byteCount
Int32

Nombre d’octets à décoder.

chars
Char[]

Tableau de caractères à contenir le jeu de caractères résultant.

charIndex
Int32

Index auquel commencer l’écriture du jeu de caractères résultant.

Retours

Nombre réel de caractères écrits en chars.

Exceptions

bytes est null (Nothing).

-ou-

chars est null (Nothing).

byteIndex ou byteCountcharIndex est inférieur à zéro.

-ou-

byteIndex et byteCount ne désignent pas une plage valide en bytes.

-ou-

charIndex n’est pas un index valide dans chars.

chars n’a pas suffisamment de capacité de charIndex la fin du tableau pour prendre en charge les caractères résultants.

Un secours s’est produit (pour plus d’informations, consultez Encodage de caractères dans .NET)

-et-

Fallback a la valeur DecoderExceptionFallback.

Exemples

L’exemple suivant montre comment décoder une plage d’éléments à partir d’un tableau d’octets et les stocker dans un tableau de caractères Unicode. La GetCharCount méthode est utilisée pour calculer le nombre de caractères nécessaires pour stocker les éléments décodés dans le tableau bytes. La GetChars méthode décode les éléments spécifiés dans le tableau d’octets et les stocke dans le nouveau tableau de caractères.

using System;
using System.Text;

class UnicodeEncodingExample {
    public static void Main() {
        Char[] chars;
        Byte[] bytes = new Byte[] {
            85, 0, 110, 0, 105, 0, 99, 0, 111, 0, 100, 0, 101, 0
        };

        Decoder uniDecoder = Encoding.Unicode.GetDecoder();

        int charCount = uniDecoder.GetCharCount(bytes, 0, bytes.Length);
        chars = new Char[charCount];
        int charsDecodedCount = uniDecoder.GetChars(bytes, 0, bytes.Length, chars, 0);

        Console.WriteLine(
            "{0} characters used to decode bytes.", charsDecodedCount
        );

        Console.Write("Decoded chars: ");
        foreach (Char c in chars) {
            Console.Write("[{0}]", c);
        }
        Console.WriteLine();
    }
}

/* This code example produces the following output.

7 characters used to decode bytes.
Decoded chars: [U][n][i][c][o][d][e]

*/
Imports System.Text

Class UnicodeEncodingExample
    
    Public Shared Sub Main()
        Dim chars() As Char
        Dim bytes() As Byte = { _
            85, 0, 110, 0, 105, 0, 99, 0, 111, 0, 100, 0, 101, 0 _
        }
        
        Dim uniDecoder As Decoder = Encoding.Unicode.GetDecoder()
        
        Dim charCount As Integer = uniDecoder.GetCharCount(bytes, 0, bytes.Length)
        chars = New Char(charCount - 1) {}
        Dim charsDecodedCount As Integer = _
            uniDecoder.GetChars(bytes, 0, bytes.Length, chars, 0)
        
        Console.WriteLine( _
            "{0} characters used to decode bytes.", _
            charsDecodedCount _
        )
        
        Console.Write("Decoded chars: ")
        Dim c As Char
        For Each c In  chars
            Console.Write("[{0}]", c)
        Next c
        Console.WriteLine()
    End Sub
End Class

'This code example produces the following output.
'
'7 characters used to decode bytes.
'Decoded chars: [U][n][i][c][o][d][e]
'

Remarques

N’oubliez pas que l’objet enregistre l’état Decoder entre les appels à GetChars. Une fois l’application terminée avec un flux de données, elle doit définir le flush paramètre pour true s’assurer que les informations d’état sont vidées. Avec ce paramètre, le décodeur ignore les octets non valides à la fin du bloc de données et efface la mémoire tampon interne.

Pour calculer la taille exacte du tableau qui GetChars nécessite de stocker les caractères résultants, l’application doit utiliser GetCharCount.

Si GetChars elle est appelée avec flush la valeur définie false, le décodeur stocke les octets de fin à la fin du bloc de données dans une mémoire tampon interne et les utilise dans l’opération de décodage suivante. L’application doit appeler GetCharCount un bloc de données immédiatement avant d’appeler GetChars sur le même bloc, afin que les octets de fin du bloc précédent soient inclus dans le calcul.

Si votre application consiste à convertir de nombreux segments d’un flux d’entrée, envisagez d’utiliser la Convert méthode. GetChars lève une exception si la mémoire tampon de sortie n’est pas suffisamment grande, mais Convert remplit autant d’espace que possible et retourne les octets lus et les caractères écrits, à condition que le tableau de sortie autorise au moins deux caractères. Consultez également la Encoding.GetChars rubrique pour plus de commentaires.

Voir aussi

S’applique à

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.

public:
 virtual int GetChars(cli::array <System::Byte> ^ bytes, int byteIndex, int byteCount, cli::array <char> ^ chars, int charIndex, bool flush);
public virtual int GetChars(byte[] bytes, int byteIndex, int byteCount, char[] chars, int charIndex, bool flush);
abstract member GetChars : byte[] * int * int * char[] * int * bool -> int
override this.GetChars : byte[] * int * int * char[] * int * bool -> int
Public Overridable Function GetChars (bytes As Byte(), byteIndex As Integer, byteCount As Integer, chars As Char(), charIndex As Integer, flush As Boolean) As Integer

Paramètres

bytes
Byte[]

Tableau d’octets contenant la séquence d’octets à décoder.

byteIndex
Int32

Index du premier octet à décoder.

byteCount
Int32

Nombre d’octets à décoder.

chars
Char[]

Tableau de caractères à contenir le jeu de caractères résultant.

charIndex
Int32

Index auquel commencer l’écriture du jeu de caractères résultant.

flush
Boolean

true pour effacer l’état interne du décodeur après la conversion ; sinon, false.

Retours

Nombre réel de caractères écrits dans le chars paramètre.

Exceptions

bytes est null (Nothing).

-ou-

chars est null (Nothing).

byteIndex ou byteCountcharIndex est inférieur à zéro.

-ou-

byteIndex et byteCount ne désignent pas une plage valide en bytes.

-ou-

charIndex n’est pas un index valide dans chars.

chars n’a pas suffisamment de capacité de charIndex la fin du tableau pour prendre en charge les caractères résultants.

Un secours s’est produit (pour plus d’informations, consultez Encodage de caractères dans .NET)

-et-

Fallback a la valeur DecoderExceptionFallback.

Remarques

N’oubliez pas que l’objet enregistre l’état Decoder entre les appels à GetChars. Une fois l’application terminée avec un flux de données, elle doit définir le flush paramètre pour true s’assurer que les informations d’état sont vidées. Avec ce paramètre, le décodeur ignore les octets non valides à la fin du bloc de données et efface la mémoire tampon interne.

Pour calculer la taille exacte du tableau qui GetChars nécessite de stocker les caractères résultants, l’application doit utiliser GetCharCount.

Si GetChars elle est appelée avec flush la valeur définie false, le décodeur stocke les octets de fin à la fin du bloc de données dans une mémoire tampon interne et les utilise dans l’opération de décodage suivante. L’application doit appeler GetCharCount un bloc de données immédiatement avant d’appeler GetChars sur le même bloc, afin que les octets de fin du bloc précédent soient inclus dans le calcul.

Si votre application consiste à convertir de nombreux segments d’un flux d’entrée, envisagez d’utiliser la Convert méthode. GetChars lève une exception si la mémoire tampon de sortie n’est pas suffisamment grande, mais Convert remplit autant d’espace que possible et retourne les octets lus et les caractères écrits, à condition que le tableau de sortie autorise au moins deux caractères. Consultez également la Encoding.GetChars rubrique pour plus de commentaires.

Voir aussi

S’applique à