UTF32Encoding.GetByteCount 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.
Calcule le nombre d'octets produits par l'encodage d'un jeu de caractères.
Surcharges
GetByteCount(String) |
Calcule le nombre d'octets générés en encodant les caractères dans le String spécifié. |
GetByteCount(Char*, Int32) |
Calcule le nombre d'octets produits par l'encodage d'un jeu de caractères commençant au pointeur de caractère spécifié. |
GetByteCount(Char[], Int32, Int32) |
Calcule le nombre d'octets produits par l'encodage d'un jeu de caractères du tableau de caractères spécifié. |
GetByteCount(String)
- Source:
- UTF32Encoding.cs
- Source:
- UTF32Encoding.cs
- Source:
- UTF32Encoding.cs
Calcule le nombre d'octets générés en encodant les caractères dans le String spécifié.
public:
override int GetByteCount(System::String ^ s);
public override int GetByteCount (string s);
override this.GetByteCount : string -> int
Public Overrides Function GetByteCount (s As String) As Integer
Paramètres
Retours
Nombre d'octets produits par l'encodage des caractères spécifiés.
Exceptions
s
a la valeur null
.
Le nombre d’octets résultant est supérieur au nombre maximal accepté pour un entier.
La détection d’erreurs est activée et s
contient une séquence de caractères non valide.
Un secours s’est produit (pour plus d’informations, consultez Codage de caractères dans .NET)
-et-
EncoderFallback a la valeur EncoderExceptionFallback.
Exemples
L’exemple suivant appelle les GetMaxByteCount méthodes et GetByteCount(String) pour calculer le nombre maximal et réel d’octets requis pour encoder une chaîne. Il affiche également le nombre réel d’octets requis pour stocker un flux d’octets avec une marque d’ordre d’octets.
using System;
using System.Text;
class UTF8EncodingExample {
public static void Main() {
String chars = "UTF-32 Encoding Example";
Encoding enc = Encoding.UTF32;
Console.WriteLine("Bytes needed to encode '{0}':", chars);
Console.WriteLine(" Maximum: {0}",
enc.GetMaxByteCount(chars.Length));
Console.WriteLine(" Actual: {0}",
enc.GetByteCount(chars));
Console.WriteLine(" Actual with BOM: {0}",
enc.GetByteCount(chars) + enc.GetPreamble().Length);
}
}
// The example displays the following output:
// Bytes needed to encode 'UTF-32 Encoding Example':
// Maximum: 96
// Actual: 92
// Actual with BOM: 96
Imports System.Text
Module Example
Public Sub Main()
Dim chars As String = "UTF-32 Encoding Example"
Dim enc As Encoding = Encoding.UTF32
Console.WriteLine("Bytes needed to encode '{0}':", chars)
Console.WriteLine(" Maximum: {0}",
enc.GetMaxByteCount(chars.Length))
Console.WriteLine(" Actual: {0}",
enc.GetByteCount(chars))
Console.WriteLine(" Actual with BOM: {0}",
enc.GetByteCount(chars) + enc.GetPreamble().Length)
End Sub
End Module
' The example displays the following output:
' Bytes needed to encode 'UTF-32 Encoding Example':
' Maximum: 96
' Actual: 92
' Actual with BOM: 96
Remarques
Pour calculer la taille exacte du tableau requise par GetBytes pour stocker les octets résultants, vous appelez la GetByteCount méthode . Pour calculer la taille maximale du tableau, vous appelez la GetMaxByteCount méthode . La GetByteCount méthode alloue généralement moins de mémoire, tandis que la GetMaxByteCount méthode s’exécute généralement plus rapidement.
Avec la détection d’erreur, une séquence non valide entraîne la levée d’un ArgumentException. Sans détection d’erreur, les séquences non valides sont ignorées et aucune exception n’est levée.
Pour vous assurer que les octets encodés sont correctement décodés lorsqu’ils sont enregistrés en tant que fichier ou en tant que flux, vous pouvez préfixer un flux d’octets encodés avec un préambule. L’insertion du préambule au début d’un flux d’octets (par exemple, au début d’une série d’octets à écrire dans un fichier) incombe au développeur, et le nombre d’octets dans le préambule n’est pas reflété dans la valeur retournée par la GetByteCount méthode .
Voir aussi
S’applique à
GetByteCount(Char*, Int32)
- Source:
- UTF32Encoding.cs
- Source:
- UTF32Encoding.cs
- Source:
- UTF32Encoding.cs
Important
Cette API n’est pas conforme CLS.
Calcule le nombre d'octets produits par l'encodage d'un jeu de caractères commençant au pointeur de caractère spécifié.
public:
override int GetByteCount(char* chars, int count);
[System.CLSCompliant(false)]
[System.Security.SecurityCritical]
public override int GetByteCount (char* chars, int count);
[System.CLSCompliant(false)]
public override int GetByteCount (char* chars, int count);
[<System.CLSCompliant(false)>]
[<System.Security.SecurityCritical>]
override this.GetByteCount : nativeptr<char> * int -> int
[<System.CLSCompliant(false)>]
override this.GetByteCount : nativeptr<char> * int -> int
Paramètres
- chars
- Char*
Pointeur du premier caractère à encoder.
- count
- Int32
Nombre de caractères à encoder.
Retours
Nombre d'octets produits par l'encodage des caractères spécifiés.
- Attributs
Exceptions
chars
a la valeur null
.
count
est inférieur à zéro.
- ou -
Le nombre d’octets résultant est supérieur au nombre maximal accepté pour un entier.
La détection d’erreurs est activée et chars
contient une séquence de caractères non valide.
Un secours s’est produit (pour plus d’informations, consultez Codage de caractères dans .NET)
-et-
EncoderFallback a la valeur EncoderExceptionFallback.
Remarques
Pour calculer la taille exacte du tableau requise par GetBytes pour stocker les octets résultants, vous appelez la GetByteCount méthode . Pour calculer la taille maximale du tableau, vous appelez .GetMaxByteCount La GetByteCount méthode alloue généralement moins de mémoire, tandis que la GetMaxByteCount méthode s’exécute généralement plus rapidement.
Avec la détection d’erreur, une séquence non valide entraîne la levée d’un ArgumentException. Sans détection d’erreur, les séquences non valides sont ignorées et aucune exception n’est levée.
Pour vous assurer que les octets encodés sont correctement décodés lorsqu’ils sont enregistrés en tant que fichier ou flux, vous pouvez préfixer un flux d’octets encodés avec un préambule. L’insertion d’un préambule au début d’un flux d’octets (par exemple, au début d’une série d’octets à écrire dans un fichier) incombe au développeur, et le nombre d’octets dans le préambule n’est pas répercuté dans la valeur retournée par la GetByteCount méthode .
Voir aussi
S’applique à
GetByteCount(Char[], Int32, Int32)
- Source:
- UTF32Encoding.cs
- Source:
- UTF32Encoding.cs
- Source:
- UTF32Encoding.cs
Calcule le nombre d'octets produits par l'encodage d'un jeu de caractères du tableau de caractères spécifié.
public:
override int GetByteCount(cli::array <char> ^ chars, int index, int count);
public override int GetByteCount (char[] chars, int index, int count);
override this.GetByteCount : char[] * int * int -> int
Public Overrides Function GetByteCount (chars As Char(), index As Integer, count As Integer) As Integer
Paramètres
- chars
- Char[]
Tableau de caractères contenant le jeu de caractères à encoder.
- index
- Int32
Index du premier caractère à encoder.
- count
- Int32
Nombre de caractères à encoder.
Retours
Nombre d'octets produits par l'encodage des caractères spécifiés.
Exceptions
chars
a la valeur null
.
index
ou count
est inférieur à zéro.
- ou -
index
et count
ne désignent pas une plage valide dans chars
.
- ou -
Le nombre d’octets résultant est supérieur au nombre maximal accepté pour un entier.
La détection d’erreurs est activée et chars
contient une séquence de caractères non valide.
Un secours s’est produit (pour plus d’informations, consultez Codage de caractères dans .NET)
-et-
EncoderFallback a la valeur EncoderExceptionFallback.
Exemples
L’exemple suivant remplit un tableau avec des caractères majuscules et minuscules latins et appelle la GetByteCount(Char[], Int32, Int32) méthode pour déterminer le nombre d’octets nécessaires pour encoder les caractères minuscules latins. Il affiche ensuite ces informations ainsi que le nombre total d’octets nécessaires si une marque d’ordre d’octet est ajoutée. Il compare ce nombre à la valeur retournée par la méthode , qui indique le GetMaxByteCount nombre maximal d’octets nécessaires pour encoder les caractères minuscules latins. L’exemple suivant remplit un tableau avec une combinaison de caractères grecs et cyrilliques et appelle la GetByteCount(Char[], Int32, Int32) méthode pour déterminer le nombre d’octets nécessaires pour encoder les caractères cyrilliques. Il affiche ensuite ces informations ainsi que le nombre total d’octets nécessaires si une marque d’ordre d’octet est ajoutée. Il compare ce nombre à la valeur retournée par la méthode, qui indique le GetMaxByteCount nombre maximal d’octets nécessaires pour encoder les caractères cyrilliques.
using System;
using System.Text;
public class Example
{
public static void Main()
{
int uppercaseStart = 0x0041;
int uppercaseEnd = 0x005a;
int lowercaseStart = 0x0061;
int lowercaseEnd = 0x007a;
// Instantiate a UTF8 encoding object with BOM support.
Encoding enc = Encoding.UTF32;
// Populate array with characters.
char[] chars = new char[lowercaseEnd - lowercaseStart + uppercaseEnd - uppercaseStart + 2];
int index = 0;
for (int ctr = uppercaseStart; ctr <= uppercaseEnd; ctr++) {
chars[index] = (char)ctr;
index++;
}
for (int ctr = lowercaseStart; ctr <= lowercaseEnd; ctr++) {
chars[index] = (char)ctr;
index++;
}
// Display the bytes needed for the lowercase characters.
Console.WriteLine("Bytes needed for lowercase Latin characters:");
Console.WriteLine(" Maximum: {0,5:N0}",
enc.GetMaxByteCount(lowercaseEnd - lowercaseStart + 1));
Console.WriteLine(" Actual: {0,5:N0}",
enc.GetByteCount(chars, uppercaseEnd - uppercaseStart + 1,
lowercaseEnd - lowercaseStart + 1));
Console.WriteLine(" Actual with BOM: {0,5:N0}",
enc.GetByteCount(chars, uppercaseEnd - uppercaseStart + 1,
lowercaseEnd - lowercaseStart + 1) +
enc.GetPreamble().Length);
}
}
// The example displays the following output:
// Bytes needed for lowercase Latin characters:
// Maximum: 108
// Actual: 104
// Actual with BOM: 108
Imports System.Text
Module Example
Public Sub Main()
Dim uppercaseStart As Integer = &h0041
Dim uppercaseEnd As Integer = &h005a
Dim lowercaseStart As Integer = &h0061
Dim lowercaseEnd As Integer = &h007a
' Instantiate a UTF8 encoding object with BOM support.
Dim enc As Encoding = Encoding.UTF32
' Populate array with characters.
Dim chars(lowercaseEnd - lowercaseStart + uppercaseEnd - uppercaseStart + 1) As Char
Dim index As Integer = 0
For ctr As Integer = uppercaseStart To uppercaseEnd
chars(index) = ChrW(ctr)
index += 1
Next
For ctr As Integer = lowercaseStart To lowercaseEnd
chars(index) = ChrW(ctr)
index += 1
Next
' Display the bytes needed for the lowercase characters.
Console.WriteLine("Bytes needed for lowercase Latin characters:")
Console.WriteLine(" Maximum: {0,5:N0}",
enc.GetMaxByteCount(lowercaseEnd - lowercaseStart + 1))
Console.WriteLine(" Actual: {0,5:N0}",
enc.GetByteCount(chars, uppercaseEnd - uppercaseStart + 1,
lowercaseEnd - lowercaseStart + 1))
Console.WriteLine(" Actual with BOM: {0,5:N0}",
enc.GetByteCount(chars, uppercaseEnd - uppercaseStart + 1,
lowercaseEnd - lowercaseStart + 1) +
enc.GetPreamble().Length)
End Sub
End Module
' The example displays the following output:
' Bytes needed for lowercase Latin characters:
' Maximum: 108
' Actual: 104
' Actual with BOM: 108
Remarques
Pour calculer la taille exacte du tableau requise par GetBytes pour stocker les octets résultants, vous appelez la GetByteCount méthode . Pour calculer la taille maximale du tableau, vous appelez la GetMaxByteCount méthode . La GetByteCount méthode alloue généralement moins de mémoire, tandis que la GetMaxByteCount méthode s’exécute généralement plus rapidement.
Avec la détection d’erreur, une séquence non valide entraîne la levée d’un ArgumentException. Sans détection d’erreur, les séquences non valides sont ignorées et aucune exception n’est levée.
Pour vous assurer que les octets encodés sont correctement décodés lorsqu’ils sont enregistrés en tant que fichier ou flux, vous pouvez préfixer un flux d’octets encodés avec un préambule. L’insertion d’un préambule au début d’un flux d’octets (par exemple, au début d’une série d’octets à écrire dans un fichier) incombe au développeur, et le nombre d’octets dans le préambule n’est pas répercuté dans la valeur retournée par la GetByteCount méthode .