Decoder.GetChars Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
En cas de substitution dans une classe dérivée, décode une séquence d'octets en jeu de caractères.
Surcharges
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 les octets de la mémoire tampon interne en un jeu de caractères, stockés à partir du pointeur de caractère spécifié. Un paramètre indique si l'état interne du décodeur doit être effacé 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 démarrant au pointeur d'octet spécifié et les octets de la mémoire tampon interne en un jeu de caractères, stockés à partir du pointeur de caractère spécifié. Un paramètre indique si l'état interne du décodeur doit être effacé 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 du tableau d'octets spécifié et 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 du tableau d'octets spécifié et les octets de la mémoire tampon interne dans le tableau de caractères spécifié. Un paramètre indique si l'état interne du décodeur doit être effacé après la conversion. |
GetChars(ReadOnlySpan<Byte>, Span<Char>, Boolean)
- Source:
- Decoder.cs
- Source:
- Decoder.cs
- Source:
- Decoder.cs
En cas de substitution dans une classe dérivée, décode une séquence d’octets d’étendue et les octets de la mémoire tampon interne en un jeu de caractères, stockés à partir du pointeur de caractère spécifié. Un paramètre indique si l'état interne du décodeur doit être effacé 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.
- 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 l’étendue indiquée par le paramètre chars
.
Remarques
N’oubliez pas que l’objet Decoder enregistre l’état entre les appels à GetChars. Lorsque l’application a terminé avec un flux de données, elle doit définir le flush
paramètre sur true
pour 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 d’étendue exacte qui GetChars
nécessite de stocker les caractères résultants, l’application doit utiliser GetCharCount.
Si GetChars
est appelé avec flush
défini sur 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
sur un bloc de données immédiatement avant d’appeler GetChars
sur le même bloc, afin que tous les octets de fin du bloc précédent soient inclus dans le calcul.
Si votre application doit 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 assez grande, mais Convert qu’elle occupe 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)
- Source:
- Decoder.cs
- Source:
- Decoder.cs
- Source:
- Decoder.cs
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 démarrant au pointeur d'octet spécifié et les octets de la mémoire tampon interne en un jeu de caractères, stockés à partir du pointeur de caractère spécifié. Un paramètre indique si l'état interne du décodeur doit être effacé après la conversion.
public:
virtual int GetChars(System::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)]
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)>]
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)>]
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
Paramètres
- bytes
- Byte*
Pointeur du premier octet à décoder.
- byteCount
- Int32
Nombre d'octets à décoder.
- chars
- Char*
Pointeur de l'emplacement où commencer l'écriture du jeu de caractères obtenu.
- 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 paramètre chars
.
- Attributs
Exceptions
byteCount
ou charCount
est inférieur à zéro.
charCount
est inférieur au nombre de caractères obtenus.
Un secours s’est produit (pour plus d’informations, consultez Codage de caractères dans .NET)
-et-
Fallback a la valeur DecoderExceptionFallback.
Remarques
N’oubliez pas que l’objet Decoder enregistre l’état entre les appels à GetChars. Lorsque l’application a terminé avec un flux de données, elle doit définir le flush
paramètre sur true
pour 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
est appelé avec flush
défini sur 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
sur un bloc de données immédiatement avant d’appeler GetChars
sur le même bloc, afin que tous les octets de fin du bloc précédent soient inclus dans le calcul.
Si votre application doit 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 assez grande, mais Convert qu’elle occupe 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)
- Source:
- Decoder.cs
- Source:
- Decoder.cs
- Source:
- Decoder.cs
En cas de substitution dans une classe dérivée, décode une séquence d'octets du tableau d'octets spécifié et 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 destiné à contenir le jeu de caractères obtenu.
- charIndex
- Int32
Index auquel commencer l'écriture du jeu de caractères obtenu.
Retours
Nombre réel de caractères écrits dans chars
.
Exceptions
byteIndex
, byteCount
ou charIndex
est inférieur à zéro.
- ou -
byteindex
et byteCount
ne désignent pas une plage valide dans bytes
.
- ou -
charIndex
n'est pas un index valide dans chars
.
chars
ne possède pas une capacité suffisante entre charIndex
et la fin du tableau pour prendre en charge les caractères obtenus.
Un secours s’est produit (pour plus d’informations, consultez Codage 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 namespace System;
using namespace System::Text;
using namespace System::Collections;
int main()
{
array<Char>^chars;
array<Byte>^bytes = {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 = gcnew array<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: " );
IEnumerator^ myEnum = chars->GetEnumerator();
while ( myEnum->MoveNext() )
{
Char c = safe_cast<Char>(myEnum->Current);
Console::Write( "[{0}]", c.ToString() );
}
Console::WriteLine();
}
/* This code example produces the following output.
7 characters used to decode bytes.
Decoded chars: [U][n][i][c][o][d][e]
*/
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 Decoder enregistre l’état entre les appels à GetChars. Lorsque l’application a terminé avec un flux de données, elle doit définir le flush
paramètre sur true
pour 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
est appelé avec flush
défini sur 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
sur un bloc de données immédiatement avant d’appeler GetChars
sur le même bloc, afin que tous les octets de fin du bloc précédent soient inclus dans le calcul.
Si votre application doit 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 assez grande, mais Convert qu’elle occupe 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)
- Source:
- Decoder.cs
- Source:
- Decoder.cs
- Source:
- Decoder.cs
En cas de substitution dans une classe dérivée, décode une séquence d'octets du tableau d'octets spécifié et les octets de la mémoire tampon interne dans le tableau de caractères spécifié. Un paramètre indique si l'état interne du décodeur doit être effacé 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 destiné à contenir le jeu de caractères obtenu.
- charIndex
- Int32
Index auquel commencer l'écriture du jeu de caractères obtenu.
- 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 paramètre chars
.
Exceptions
byteIndex
, byteCount
ou charIndex
est inférieur à zéro.
- ou -
byteindex
et byteCount
ne désignent pas une plage valide dans bytes
.
- ou -
charIndex
n'est pas un index valide dans chars
.
chars
ne possède pas une capacité suffisante entre charIndex
et la fin du tableau pour prendre en charge les caractères obtenus.
Un secours s’est produit (pour plus d’informations, consultez Codage de caractères dans .NET)
-et-
Fallback a la valeur DecoderExceptionFallback.
Remarques
N’oubliez pas que l’objet Decoder enregistre l’état entre les appels à GetChars. Lorsque l’application est terminée avec un flux de données, elle doit définir le flush
paramètre sur 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
est appelé avec flush
la valeur définie sur 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
sur un bloc de données immédiatement avant d’appeler GetChars
sur le même bloc, afin que tous les octets de fin du bloc précédent soient inclus dans le calcul.
Si votre application doit 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 assez 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.