UTF7Encoding.GetChars Méthode

Définition

Décode une séquence d’octets en un ensemble de caractères.

Surcharges

Nom Description
GetChars(Byte*, Int32, Char*, Int32)

Décode une séquence d’octets commençant au pointeur d’octet spécifié dans un ensemble de caractères stockés à partir du pointeur de caractères spécifié.

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

Décode une séquence d’octets du tableau d’octets spécifié dans le tableau de caractères spécifié.

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

Important

Cette API n’est pas conforme CLS.

Décode une séquence d’octets commençant au pointeur d’octet spécifié dans un ensemble de caractères stockés à partir du pointeur de caractères spécifié.

public:
 override int GetChars(System::Byte* bytes, int byteCount, char* chars, int charCount);
[System.CLSCompliant(false)]
[System.Security.SecurityCritical]
public override int GetChars(byte* bytes, int byteCount, char* chars, int charCount);
[System.CLSCompliant(false)]
[System.Runtime.InteropServices.ComVisible(false)]
public override int GetChars(byte* bytes, int byteCount, char* chars, int charCount);
[System.CLSCompliant(false)]
[System.Security.SecurityCritical]
[System.Runtime.InteropServices.ComVisible(false)]
public override int GetChars(byte* bytes, int byteCount, char* chars, int charCount);
[System.CLSCompliant(false)]
public override int GetChars(byte* bytes, int byteCount, char* chars, int charCount);
[<System.CLSCompliant(false)>]
[<System.Security.SecurityCritical>]
override this.GetChars : nativeptr<byte> * int * nativeptr<char> * int -> int
[<System.CLSCompliant(false)>]
[<System.Runtime.InteropServices.ComVisible(false)>]
override this.GetChars : nativeptr<byte> * int * nativeptr<char> * int -> int
[<System.CLSCompliant(false)>]
[<System.Security.SecurityCritical>]
[<System.Runtime.InteropServices.ComVisible(false)>]
override this.GetChars : nativeptr<byte> * int * nativeptr<char> * int -> int
[<System.CLSCompliant(false)>]
override this.GetChars : nativeptr<byte> * int * nativeptr<char> * int -> 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.

Retours

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

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-

DecoderFallback a la valeur DecoderExceptionFallback.

Remarques

Pour calculer la taille exacte du tableau requise pour GetChars stocker les caractères résultants, utilisez GetCharCount. Pour calculer la taille maximale du tableau, l’application doit utiliser GetMaxCharCount. La GetCharCount méthode autorise généralement l’allocation de moins de mémoire, tandis que la GetMaxCharCount méthode s’exécute généralement plus rapidement.

Les données à convertir, telles que les données lues à partir d’un flux, peuvent être disponibles uniquement dans des blocs séquentiels. Dans ce cas, ou si la quantité de données est si importante qu’elle doit être divisée en blocs plus petits, l’application doit utiliser respectivement la Decoder méthode ou Encoder la GetDecoderGetEncoder méthode fournie.

Note

UTF7Encoding ne fournit pas de détection d’erreur. Lorsque des octets non valides sont rencontrés, UTF7Encoding émet généralement les octets non valides. Si un octet est supérieur à l'0x7F hexadécimal, la valeur d’octet est étendue à zéro dans un caractère Unicode, le résultat est stocké dans le chars tableau et toute séquence de décalage est arrêtée. Par exemple, si l’octet à encoder est hexadécimal 0x81, le caractère résultant est U+0081. Pour des raisons de sécurité, vos applications sont recommandées pour utiliser UTF8Encoding, UnicodeEncodingou UTF32Encoding activer la détection des erreurs.

Voir aussi

S’applique à

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

Décode une séquence d’octets du tableau d’octets spécifié dans le tableau de caractères spécifié.

public:
 override int GetChars(cli::array <System::Byte> ^ bytes, int byteIndex, int byteCount, cli::array <char> ^ chars, int charIndex);
public override int GetChars(byte[] bytes, int byteIndex, int byteCount, char[] chars, int charIndex);
override this.GetChars : byte[] * int * int * char[] * int -> int
Public Overrides 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-

DecoderFallback a la valeur DecoderExceptionFallback.

Exemples

L’exemple de code suivant montre comment utiliser la GetChars méthode pour décoder une plage d’éléments dans un tableau d’octets et stocker le résultat dans un tableau de caractères.

using System;
using System.Text;

class UTF7EncodingExample {
    public static void Main() {
        Char[] chars;
        Byte[] bytes = new Byte[] {
             85,  84,  70,  55,  32,  69, 110,
             99, 111, 100, 105, 110, 103,  32,
             69, 120,  97, 109, 112, 108, 101
        };

        UTF7Encoding utf7 = new UTF7Encoding();

        int charCount = utf7.GetCharCount(bytes, 2, 8);
        chars = new Char[charCount];
        int charsDecodedCount = utf7.GetChars(bytes, 2, 8, 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();
    }
}
Imports System.Text

Class UTF7EncodingExample
    
    Public Shared Sub Main()
        Dim chars() As Char
        Dim bytes() As Byte = { _
            85,  84,  70,  55,  32,  69, 110, _
            99, 111, 100, 105, 110, 103,  32, _
            69, 120,  97, 109, 112, 108, 101 _
        }
        
        Dim utf7 As New UTF7Encoding()
        
        Dim charCount As Integer = utf7.GetCharCount(bytes, 2, 8)
        chars = New Char(charCount - 1) {}
        Dim charsDecodedCount As Integer = utf7.GetChars(bytes, 2, 8, 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

Remarques

Pour calculer la taille exacte du tableau requise pour GetChars stocker les caractères résultants, utilisez GetCharCount. Pour calculer la taille maximale du tableau, l’application doit utiliser GetMaxCharCount. La GetCharCount méthode autorise généralement l’allocation de moins de mémoire, tandis que la GetMaxCharCount méthode s’exécute généralement plus rapidement.

Les données à convertir, telles que les données lues à partir d’un flux, peuvent être disponibles uniquement dans des blocs séquentiels. Dans ce cas, ou si la quantité de données est si importante qu’elle doit être divisée en blocs plus petits, l’application doit utiliser respectivement la Decoder méthode ou Encoder la GetDecoderGetEncoder méthode fournie.

Note

UTF7Encoding ne fournit pas de détection d’erreur. Lorsque des octets non valides sont rencontrés, UTF7Encoding émet généralement les octets non valides. Si un octet est supérieur à l'0x7F hexadécimal, la valeur d’octet est étendue à zéro dans un caractère Unicode, le résultat est stocké dans le chars tableau et toute séquence de décalage est arrêtée. Par exemple, si l’octet à encoder est hexadécimal 0x81, le caractère résultant est U+0081. Pour des raisons de sécurité, vos applications sont recommandées pour utiliser UTF8Encoding, UnicodeEncodingou UTF32Encoding activer la détection des erreurs.

Voir aussi

S’applique à