Partager via


UTF32Encoding.GetByteCount Méthode

Définition

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

s
String

String contenant le jeu de caractères à encoder.

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 .

Voir aussi

S’applique à