UTF7Encoding.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.
Décode une séquence d'octets en un jeu de caractères.
Surcharges
GetChars(Byte*, Int32, Char*, Int32) |
Décode une séquence d'octets commençant au pointeur d'octet spécifié en un jeu de caractères qui sera stocké à partir du pointeur de caractère 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)
- Source:
- UTF7Encoding.cs
- Source:
- UTF7Encoding.cs
- Source:
- UTF7Encoding.cs
Important
Cette API n’est pas conforme CLS.
Décode une séquence d'octets commençant au pointeur d'octet spécifié en un jeu de caractères qui sera stocké à partir du pointeur de caractère 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)]
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)>]
[<System.Security.SecurityCritical>]
override this.GetChars : nativeptr<byte> * int * nativeptr<char> * int -> int
[<System.CLSCompliant(false)>]
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
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.
Retours
Nombre réel de caractères écrits à l'emplacement indiqué par 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-
DecoderFallback a la valeur DecoderExceptionFallback.
Remarques
Pour calculer la taille de tableau exacte requise par GetChars pour stocker les caractères résultants, utilisez GetCharCount. Pour calculer la taille maximale du tableau, l’application doit utiliser GetMaxCharCount. La GetCharCount méthode permet généralement d’allouer 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 telle qu’elle doit être divisée en blocs plus petits, l’application doit utiliser le Decoder ou Encoder fourni par la GetDecoder méthode ou la GetEncoder méthode, respectivement.
Notes
UTF7Encoding ne fournit pas de détection des erreurs. Lorsque des octets non valides sont rencontrés, UTF7Encoding émet généralement les octets non valides. Si un octet est supérieur à 0x7F hexadécimal, la valeur d’octet est étendue à zéro en caractère Unicode, le résultat est stocké dans le chars
tableau et toute séquence de décalage est terminée. Par exemple, si l’octet à encoder est hexadécimal 0x81, le caractère obtenu est U+0081. Pour des raisons de sécurité, il est recommandé à vos applications d’utiliser UTF8Encoding, UnicodeEncodingou et UTF32Encoding d’activer la détection des erreurs.
Voir aussi
- GetCharCount(Byte[], Int32, Int32)
- GetMaxCharCount(Int32)
- GetDecoder()
- GetString(Byte[], Int32, Int32)
S’applique à
GetChars(Byte[], Int32, Int32, Char[], Int32)
- Source:
- UTF7Encoding.cs
- Source:
- UTF7Encoding.cs
- Source:
- UTF7Encoding.cs
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 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-
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 namespace System;
using namespace System::Text;
using namespace System::Collections;
int main()
{
array<Char>^chars;
array<Byte>^bytes = {85,84,70,55,32,69,110,99,111,100,105,110,103,32,69,120,97,109,112,108,101};
UTF7Encoding^ utf7 = gcnew UTF7Encoding;
int charCount = utf7->GetCharCount( bytes, 2, 8 );
chars = gcnew array<Char>(charCount);
int charsDecodedCount = utf7->GetChars( bytes, 2, 8, 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();
}
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 de tableau exacte requise par GetChars pour stocker les caractères résultants, utilisez GetCharCount. Pour calculer la taille maximale du tableau, l’application doit utiliser GetMaxCharCount. La GetCharCount méthode permet généralement d’allouer 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 telle qu’elle doit être divisée en blocs plus petits, l’application doit utiliser le Decoder ou Encoder fourni par la GetDecoder méthode ou la GetEncoder méthode, respectivement.
Notes
UTF7Encoding ne fournit pas de détection des erreurs. Lorsque des octets non valides sont rencontrés, UTF7Encoding émet généralement les octets non valides. Si un octet est supérieur à 0x7F hexadécimal, la valeur d’octet est étendue à zéro en caractère Unicode, le résultat est stocké dans le chars
tableau et toute séquence de décalage est terminée. Par exemple, si l’octet à encoder est hexadécimal 0x81, le caractère obtenu est U+0081. Pour des raisons de sécurité, il est recommandé à vos applications d’utiliser UTF8Encoding, UnicodeEncodingou et UTF32Encoding d’activer la détection des erreurs.
Voir aussi
- GetCharCount(Byte[], Int32, Int32)
- GetMaxCharCount(Int32)
- GetDecoder()
- GetString(Byte[], Int32, Int32)