Partager via


UTF32Encoding Classe

Définition

Représente un encodage UTF-32 de caractères Unicode.

public ref class UTF32Encoding sealed : System::Text::Encoding
public sealed class UTF32Encoding : System.Text.Encoding
[System.Serializable]
public sealed class UTF32Encoding : System.Text.Encoding
type UTF32Encoding = class
    inherit Encoding
[<System.Serializable>]
type UTF32Encoding = class
    inherit Encoding
Public NotInheritable Class UTF32Encoding
Inherits Encoding
Héritage
UTF32Encoding
Attributs

Exemples

L’exemple suivant illustre le comportement des UTF32Encoding objets avec et sans détection d’erreur activée. Il crée un tableau d’octets dont les quatre derniers octets représentent une paire de substitution non valide ; le substitut élevé U+D8FF est suivi d’un U+01FF, qui est en dehors de la plage des substituts faibles (0xDC00 à 0xDFFF). Sans détection d’erreur, le décodeur UTF32 utilise le secours de remplacement pour remplacer la paire de substitution non valide par REPLACEMENT CHARACTER (U+FFFD).

using namespace System;
using namespace System::Text;
void PrintDecodedString( array<Byte>^bytes, Encoding^ enc );
int main()
{
   
   // Create an instance of UTF32Encoding using little-endian byte order.
   // This will be used for encoding.
   UTF32Encoding^ u32LE = gcnew UTF32Encoding( false,true );
   
   // Create two instances of UTF32Encoding using big-endian byte order: one with error detection and one without.
   // These will be used for decoding.
   UTF32Encoding^ u32withED = gcnew UTF32Encoding( true,true,true );
   UTF32Encoding^ u32noED = gcnew UTF32Encoding( true,true,false );
   
   // Create byte arrays from the same string containing the following characters:
   //    Latin Small Letter Z (U+007A)
   //    Latin Small Letter A (U+0061)
   //    Combining Breve (U+0306)
   //    Latin Small Letter AE With Acute (U+01FD)
   //    Greek Small Letter Beta (U+03B2)
   String^ myStr = L"za\u0306\u01FD\u03B2\xD8FF\xDCFF";
   
   // Encode the string using little-endian byte order.
   array<Byte>^myBytes = gcnew array<Byte>(u32LE->GetByteCount( myStr ));
   u32LE->GetBytes( myStr, 0, myStr->Length, myBytes, 0 );
   
   // Decode the byte array with error detection.
   Console::WriteLine( "Decoding with error detection:" );
   PrintDecodedString( myBytes, u32withED );
   
   // Decode the byte array without error detection.
   Console::WriteLine( "Decoding without error detection:" );
   PrintDecodedString( myBytes, u32noED );
}


// Decode the bytes and display the string.
void PrintDecodedString( array<Byte>^bytes, Encoding^ enc )
{
   try
   {
      Console::WriteLine( "   Decoded string: {0}", enc->GetString( bytes, 0, bytes->Length ) );
   }
   catch ( System::ArgumentException^ e ) 
   {
      Console::WriteLine( e );
   }

   Console::WriteLine();
}
using System;
using System.Text;

public class Example
{
   public static void Main()
   {
     // Create a UTF32Encoding object with error detection enabled.
      var encExc = new UTF32Encoding(! BitConverter.IsLittleEndian, true, true);
      // Create a UTF32Encoding object with error detection disabled.
      var encRepl = new UTF32Encoding(! BitConverter.IsLittleEndian, true, false);

      // Create a byte arrays from a string, and add an invalid surrogate pair, as follows.
      //    Latin Small Letter Z (U+007A)
      //    Latin Small Letter A (U+0061)
      //    Combining Breve (U+0306)
      //    Latin Small Letter AE With Acute (U+01FD)
      //    Greek Small Letter Beta (U+03B2)
      //    a high-surrogate value (U+D8FF)
      //    an invalid low surrogate (U+01FF)
      String s = "za\u0306\u01FD\u03B2";

      // Encode the string using little-endian byte order.
      int index = encExc.GetByteCount(s);
      Byte[] bytes = new Byte[index + 4];
      encExc.GetBytes(s, 0, s.Length, bytes, 0);
      bytes[index] = 0xFF;
      bytes[index + 1] = 0xD8;
      bytes[index + 2] = 0xFF;
      bytes[index + 3] = 0x01;

      // Decode the byte array with error detection.
      Console.WriteLine("Decoding with error detection:");
      PrintDecodedString(bytes, encExc);

      // Decode the byte array without error detection.
      Console.WriteLine("Decoding without error detection:");
      PrintDecodedString(bytes, encRepl);
   }

   // Decode the bytes and display the string.
   public static void PrintDecodedString(Byte[] bytes, Encoding enc)
   {
      try {
         Console.WriteLine("   Decoded string: {0}", enc.GetString(bytes, 0, bytes.Length));
      }
      catch (DecoderFallbackException e) {
         Console.WriteLine(e.ToString());
      }
      Console.WriteLine();
   }
}
// The example displays the following output:
//    Decoding with error detection:
//    System.Text.DecoderFallbackException: Unable to translate bytes [FF][D8][FF][01] at index
//    20 from specified code page to Unicode.
//       at System.Text.DecoderExceptionFallbackBuffer.Throw(Byte[] bytesUnknown, Int32 index)
//       at System.Text.DecoderExceptionFallbackBuffer.Fallback(Byte[] bytesUnknown, Int32 index
//    )
//       at System.Text.DecoderFallbackBuffer.InternalFallback(Byte[] bytes, Byte* pBytes)
//       at System.Text.UTF32Encoding.GetCharCount(Byte* bytes, Int32 count, DecoderNLS baseDeco
//    der)
//       at System.Text.UTF32Encoding.GetString(Byte[] bytes, Int32 index, Int32 count)
//       at Example.PrintDecodedString(Byte[] bytes, Encoding enc)
//
//    Decoding without error detection:
//       Decoded string: zăǽβ�
Imports System.Text

Public Module Example
   Public Sub Main()
      ' Create a UTF32Encoding object with error detection enabled.
      Dim encExc As New UTF32Encoding(Not BitConverter.IsLittleEndian, True, True)
      ' Create a UTF32Encoding object with error detection disabled.
      Dim encRepl As New UTF32Encoding(Not BitConverter.IsLittleEndian, True, False)

      ' Create a byte arrays from a string, and add an invalid surrogate pair, as follows.
      '    Latin Small Letter Z (U+007A)
      '    Latin Small Letter A (U+0061)
      '    Combining Breve (U+0306)
      '    Latin Small Letter AE With Acute (U+01FD)
      '    Greek Small Letter Beta (U+03B2)
      '    a high-surrogate value (U+D8FF)
      '    an invalid low surrogate (U+01FF)
      Dim s As String = "za" & ChrW(&H0306) & ChrW(&H01FD) & ChrW(&H03B2)

      ' Encode the string using little-endian byte order.
      Dim index As Integer = encExc.GetBytecount(s)
      Dim bytes(index + 3) As Byte
      encExc.GetBytes(s, 0, s.Length, bytes, 0)
      bytes(index) = &hFF
      bytes(index + 1) = &hD8
      bytes(index + 2) = &hFF
      bytes(index + 3) = &h01

      ' Decode the byte array with error detection.
      Console.WriteLine("Decoding with error detection:")
      PrintDecodedString(bytes, encExc)

      ' Decode the byte array without error detection.
      Console.WriteLine("Decoding without error detection:")
      PrintDecodedString(bytes, encRepl)
   End Sub

   ' Decode the bytes and display the string.
   Public Sub PrintDecodedString(bytes() As Byte, enc As Encoding)
      Try
         Console.WriteLine("   Decoded string: {0}", enc.GetString(bytes, 0, bytes.Length))
      Catch e As DecoderFallbackException
         Console.WriteLine(e.ToString())
      End Try
      Console.WriteLine()
   End Sub
End Module
' The example displays the following output:
'    Decoding with error detection:
'    System.Text.DecoderFallbackException: Unable to translate bytes [FF][D8][FF][01] at index
'    20 from specified code page to Unicode.
'       at System.Text.DecoderExceptionFallbackBuffer.Throw(Byte[] bytesUnknown, Int32 index)
'       at System.Text.DecoderExceptionFallbackBuffer.Fallback(Byte[] bytesUnknown, Int32 index
'    )
'       at System.Text.DecoderFallbackBuffer.InternalFallback(Byte[] bytes, Byte* pBytes)
'       at System.Text.UTF32Encoding.GetCharCount(Byte* bytes, Int32 count, DecoderNLS baseDeco
'    der)
'       at System.Text.UTF32Encoding.GetString(Byte[] bytes, Int32 index, Int32 count)
'       at Example.PrintDecodedString(Byte[] bytes, Encoding enc)
'
'    Decoding without error detection:
'       Decoded string: zăǽβ�

L’exemple suivant encode une chaîne de caractères Unicode dans un tableau d’octets à l’aide d’un UTF32Encoding objet. Le tableau d’octets est ensuite décodé dans une chaîne pour démontrer qu’il n’y a pas de perte de données.

using System;
using System.Text;

public class Example
{
    public static void Main()
    {
        // The encoding.
        var enc = new UTF32Encoding();
        
        // Create a string.
        String s = "This string contains two characters " +
                   "with codes outside the ASCII code range: " +
                   "Pi (\u03A0) and Sigma (\u03A3).";
        Console.WriteLine("Original string:");
        Console.WriteLine("   {0}", s);
        
        // Encode the string.
        Byte[] encodedBytes = enc.GetBytes(s);
        Console.WriteLine();
        Console.WriteLine("Encoded bytes:");
        for (int ctr = 0; ctr < encodedBytes.Length; ctr++) {
            Console.Write("[{0:X2}]{1}", encodedBytes[ctr],
                                         (ctr + 1) % 4 == 0 ? " " : "" );
            if ((ctr + 1) % 16 == 0) Console.WriteLine();
        }
        Console.WriteLine();
        
        // Decode bytes back to string.
        // Notice Pi and Sigma characters are still present.
        String decodedString = enc.GetString(encodedBytes);
        Console.WriteLine();
        Console.WriteLine("Decoded string:");
        Console.WriteLine("   {0}", decodedString);
    }
}
// The example displays the following output:
//    Original string:
//       This string contains two characters with codes outside the ASCII code range:
//    Pi (π) and Sigma (Σ).
//
//    Encoded bytes:
//    [54][00][00][00] [68][00][00][00] [69][00][00][00] [73][00][00][00]
//    [20][00][00][00] [73][00][00][00] [74][00][00][00] [72][00][00][00]
//    [69][00][00][00] [6E][00][00][00] [67][00][00][00] [20][00][00][00]
//    [63][00][00][00] [6F][00][00][00] [6E][00][00][00] [74][00][00][00]
//    [61][00][00][00] [69][00][00][00] [6E][00][00][00] [73][00][00][00]
//    [20][00][00][00] [74][00][00][00] [77][00][00][00] [6F][00][00][00]
//    [20][00][00][00] [63][00][00][00] [68][00][00][00] [61][00][00][00]
//    [72][00][00][00] [61][00][00][00] [63][00][00][00] [74][00][00][00]
//    [65][00][00][00] [72][00][00][00] [73][00][00][00] [20][00][00][00]
//    [77][00][00][00] [69][00][00][00] [74][00][00][00] [68][00][00][00]
//    [20][00][00][00] [63][00][00][00] [6F][00][00][00] [64][00][00][00]
//    [65][00][00][00] [73][00][00][00] [20][00][00][00] [6F][00][00][00]
//    [75][00][00][00] [74][00][00][00] [73][00][00][00] [69][00][00][00]
//    [64][00][00][00] [65][00][00][00] [20][00][00][00] [74][00][00][00]
//    [68][00][00][00] [65][00][00][00] [20][00][00][00] [41][00][00][00]
//    [53][00][00][00] [43][00][00][00] [49][00][00][00] [49][00][00][00]
//    [20][00][00][00] [63][00][00][00] [6F][00][00][00] [64][00][00][00]
//    [65][00][00][00] [20][00][00][00] [72][00][00][00] [61][00][00][00]
//    [6E][00][00][00] [67][00][00][00] [65][00][00][00] [3A][00][00][00]
//    [20][00][00][00] [50][00][00][00] [69][00][00][00] [20][00][00][00]
//    [28][00][00][00] [A0][03][00][00] [29][00][00][00] [20][00][00][00]
//    [61][00][00][00] [6E][00][00][00] [64][00][00][00] [20][00][00][00]
//    [53][00][00][00] [69][00][00][00] [67][00][00][00] [6D][00][00][00]
//    [61][00][00][00] [20][00][00][00] [28][00][00][00] [A3][03][00][00]
//    [29][00][00][00] [2E][00][00][00]
//
//    Decoded string:
//       This string contains two characters with codes outside the ASCII code range:
//    Pi (π) and Sigma (Σ).
Imports System.Text

Class Example
    Public Shared Sub Main()
        ' The encoding.
        Dim enc As New UTF32Encoding()
        
        ' Create a string.
        Dim s As String =
            "This string contains two characters " &
            "with codes outside the ASCII code range: " &
            "Pi (" & ChrW(&h03A0) & ") and Sigma (" & ChrW(&h03A3) & ")."
        Console.WriteLine("Original string:")
        Console.WriteLine("   {0}", s)
        
        ' Encode the string.
        Dim encodedBytes As Byte() = enc.GetBytes(s)
        Console.WriteLine()
        Console.WriteLine("Encoded bytes:")
        For ctr As Integer = 0 To encodedBytes.Length - 1
            Console.Write("[{0:X2}]{1}", encodedBytes(ctr),
                                         If((ctr + 1) Mod 4 = 0, " ", "" ))
            If (ctr + 1) Mod 16 = 0 Then Console.WriteLine()
        Next
        Console.WriteLine()
        
        ' Decode bytes back to string.
        ' Notice Pi and Sigma characters are still present.
        Dim decodedString As String = enc.GetString(encodedBytes)
        Console.WriteLine()
        Console.WriteLine("Decoded string:")
        Console.WriteLine("   {0}", decodedString)
    End Sub
End Class
' The example displays the following output:
'    Original string:
'       This string contains two characters with codes outside the ASCII code range:
'    Pi (π) and Sigma (Σ).
'
'    Encoded bytes:
'    [54][00][00][00] [68][00][00][00] [69][00][00][00] [73][00][00][00]
'    [20][00][00][00] [73][00][00][00] [74][00][00][00] [72][00][00][00]
'    [69][00][00][00] [6E][00][00][00] [67][00][00][00] [20][00][00][00]
'    [63][00][00][00] [6F][00][00][00] [6E][00][00][00] [74][00][00][00]
'    [61][00][00][00] [69][00][00][00] [6E][00][00][00] [73][00][00][00]
'    [20][00][00][00] [74][00][00][00] [77][00][00][00] [6F][00][00][00]
'    [20][00][00][00] [63][00][00][00] [68][00][00][00] [61][00][00][00]
'    [72][00][00][00] [61][00][00][00] [63][00][00][00] [74][00][00][00]
'    [65][00][00][00] [72][00][00][00] [73][00][00][00] [20][00][00][00]
'    [77][00][00][00] [69][00][00][00] [74][00][00][00] [68][00][00][00]
'    [20][00][00][00] [63][00][00][00] [6F][00][00][00] [64][00][00][00]
'    [65][00][00][00] [73][00][00][00] [20][00][00][00] [6F][00][00][00]
'    [75][00][00][00] [74][00][00][00] [73][00][00][00] [69][00][00][00]
'    [64][00][00][00] [65][00][00][00] [20][00][00][00] [74][00][00][00]
'    [68][00][00][00] [65][00][00][00] [20][00][00][00] [41][00][00][00]
'    [53][00][00][00] [43][00][00][00] [49][00][00][00] [49][00][00][00]
'    [20][00][00][00] [63][00][00][00] [6F][00][00][00] [64][00][00][00]
'    [65][00][00][00] [20][00][00][00] [72][00][00][00] [61][00][00][00]
'    [6E][00][00][00] [67][00][00][00] [65][00][00][00] [3A][00][00][00]
'    [20][00][00][00] [50][00][00][00] [69][00][00][00] [20][00][00][00]
'    [28][00][00][00] [A0][03][00][00] [29][00][00][00] [20][00][00][00]
'    [61][00][00][00] [6E][00][00][00] [64][00][00][00] [20][00][00][00]
'    [53][00][00][00] [69][00][00][00] [67][00][00][00] [6D][00][00][00]
'    [61][00][00][00] [20][00][00][00] [28][00][00][00] [A3][03][00][00]
'    [29][00][00][00] [2E][00][00][00]
'
'    Decoded string:
'       This string contains two characters with codes outside the ASCII code range:
'    Pi (π) and Sigma (Σ).

L’exemple suivant utilise la même chaîne que le précédent, sauf qu’il écrit les octets encodés dans un fichier et préfixe le flux d’octets avec une marque d’ordre d’octet (BOM). Il lit ensuite le fichier de deux manières différentes : en tant que fichier texte à l’aide d’un StreamReader objet ; et en tant que fichier binaire. Comme vous pouvez vous y attendre, aucune chaîne nouvellement lue n’inclut la nomenclature.

using System;
using System.IO;
using System.Text;

public class Example
{
    public static void Main()
    {
        // Create a UTF-32 encoding that supports a BOM.
        var enc = new UTF32Encoding();
        
        // A Unicode string with two characters outside an 8-bit code range.
        String s = "This Unicode string has 2 characters " +
                   "outside the ASCII range: \n" +
                   "Pi (\u03A0), and Sigma (\u03A3).";
        Console.WriteLine("Original string:");
        Console.WriteLine(s);
        Console.WriteLine();
        
        // Encode the string.
        Byte[] encodedBytes = enc.GetBytes(s);
        Console.WriteLine("The encoded string has {0} bytes.\n",
                          encodedBytes.Length);

        // Write the bytes to a file with a BOM.
        var fs = new FileStream(@".\UTF32Encoding.txt", FileMode.Create);
        Byte[] bom = enc.GetPreamble();
        fs.Write(bom, 0, bom.Length);
        fs.Write(encodedBytes, 0, encodedBytes.Length);
        Console.WriteLine("Wrote {0} bytes to the file.\n", fs.Length);
        fs.Close();

        // Open the file using StreamReader.
        var sr = new StreamReader(@".\UTF32Encoding.txt");
        String newString = sr.ReadToEnd();
        sr.Close();
        Console.WriteLine("String read using StreamReader:");
        Console.WriteLine(newString);
        Console.WriteLine();
        
        // Open the file as a binary file and decode the bytes back to a string.
        fs = new FileStream(@".\Utf32Encoding.txt", FileMode.Open);
        Byte[] bytes = new Byte[fs.Length];
        fs.Read(bytes, 0, (int)fs.Length);
        fs.Close();

        String decodedString = enc.GetString(bytes);
        Console.WriteLine("Decoded bytes from binary file:");
        Console.WriteLine(decodedString);
    }
}
// The example displays the following output:
//    Original string:
//    This Unicode string has 2 characters outside the ASCII range:
//    Pi (π), and Sigma (Σ).
//
//    The encoded string has 340 bytes.
//
//    Wrote 344 bytes to the file.
//
//    String read using StreamReader:
//    This Unicode string has 2 characters outside the ASCII range:
//    Pi (π), and Sigma (Σ).
//
//    Decoded bytes from binary file:
//    This Unicode string has 2 characters outside the ASCII range:
//    Pi (π), and Sigma (Σ).
Imports System.IO
Imports System.Text

Class Example
    Public Shared Sub Main()
        ' Create a UTF-32 encoding that supports a BOM.
        Dim enc As New UTF32Encoding()
        
        ' A Unicode string with two characters outside an 8-bit code range.
        Dim s As String = _
            "This Unicode string has 2 characters outside the " &
            "ASCII range: " & vbCrLf &
            "Pi (" & ChrW(&h03A0) & "), and Sigma (" & ChrW(&h03A3) & ")."
        Console.WriteLine("Original string:")
        Console.WriteLine(s)
        Console.WriteLine()
        
        ' Encode the string.
        Dim encodedBytes As Byte() = enc.GetBytes(s)
        Console.WriteLine("The encoded string has {0} bytes.",
                          encodedBytes.Length)
        Console.WriteLine()
        
        ' Write the bytes to a file with a BOM.
        Dim fs As New FileStream(".\UTF32Encoding.txt", FileMode.Create)
        Dim bom() As Byte = enc.GetPreamble()
        fs.Write(bom, 0, bom.Length)
        fs.Write(encodedBytes, 0, encodedBytes.Length)
        Console.WriteLine("Wrote {0} bytes to the file.", fs.Length)
        fs.Close()
        Console.WriteLine()
        
        ' Open the file using StreamReader.
        Dim sr As New StreamReader(".\UTF32Encoding.txt")
        Dim newString As String = sr.ReadToEnd()
        sr.Close()
        Console.WriteLine("String read using StreamReader:")
        Console.WriteLine(newString)
        Console.WriteLine()
        
        ' Open the file as a binary file and decode the bytes back to a string.
        fs = new FileStream(".\Utf32Encoding.txt", FileMode.Open)
        Dim bytes(fs.Length - 1) As Byte
        fs.Read(bytes, 0, fs.Length)
        fs.Close()

        Dim decodedString As String = enc.GetString(bytes)
        Console.WriteLine("Decoded bytes from binary file:")
        Console.WriteLine(decodedString)
    End Sub
End Class
' The example displays the following output:
'    Original string:
'    This Unicode string has 2 characters outside the ASCII range:
'    Pi (π), and Sigma (Σ).
'
'    The encoded string has 344 bytes.
'
'    Wrote 348 bytes to the file.
'
'    String read using StreamReader:
'    This Unicode string has 2 characters outside the ASCII range:
'    Pi (π), and Sigma (Σ).
'
'    Decoded bytes from binary file:
'    This Unicode string has 2 characters outside the ASCII range:
'    Pi (π), and Sigma (Σ).

Remarques

L'encodage est le processus de transformation d'un jeu de caractères Unicode en une séquence d'octets. Le décodage est le processus de transformation d’une séquence d’octets encodés en un ensemble de caractères Unicode.

La norme Unicode affecte un point de code (un nombre) à chaque caractère de chaque script pris en charge. Un format de transformation Unicode (UTF) est un moyen d’encoder ce point de code. La norme Unicode utilise les UDF suivants :

  • UTF-8, qui représente chaque point de code sous la forme d’une séquence de un à quatre octets.

  • UTF-16, qui représente chaque point de code sous la forme d’une séquence de un à deux entiers 16 bits.

  • UTF-32, qui représente chaque point de code sous la forme d’un entier de 32 bits.

Pour plus d’informations sur les UDF et autres encodages pris en charge par System.Text, consultez Encodage de caractères dans .NET.

La UTF32Encoding classe représente un encodage UTF-32. L’encodeur peut utiliser l’ordre d’octets d’endian grand (octet le plus significatif en premier) ou l’ordre d’octets de petit endian (octet le moins significatif en premier). Par exemple, la lettre majuscule latine A (point de code U+0041) est sérialisée comme suit (en hexadécimal) :

  • Ordre d’octets big endian : 00 00 00 41

  • Ordre des octets d’endian : 41 00 00 00

Il est généralement plus efficace de stocker des caractères Unicode à l’aide de l’ordre d’octet natif. Par exemple, il est préférable d’utiliser l’ordre d’octet avec primauté des octets de poids faible sur les plateformes Little endian, comme les ordinateurs Intel. UTF32Encoding correspond aux pages de code Windows 12000 (ordre d’octets d’endian) et 12001 (ordre d’octets d’endian grand). Vous pouvez déterminer la « endianness » d’une architecture particulière en appelant la BitConverter.IsLittleEndian méthode .

Éventuellement, l’objet UTF32Encoding fournit une marque d’ordre d’octet (BOM), qui est un tableau d’octets qui peut être précédé de la séquence d’octets résultant du processus d’encodage. Si le préambule contient une marque d’ordre d’octet (BOM), il aide le décodeur à déterminer l’ordre des octets et le format de transformation ou UTF d’un tableau d’octets.

Si le UTF32Encoding instance est configuré pour fournir une nomenclature, vous pouvez la récupérer en appelant la GetPreamble méthode ; sinon, la méthode retourne un tableau vide. Notez que, même si un UTF32Encoding objet est configuré pour la prise en charge de la nomenclature, vous devez inclure la nomenclature au début du flux d’octets encodé le cas échéant ; les méthodes d’encodage de la UTF32Encoding classe ne le font pas automatiquement.

Attention

Pour activer la détection des erreurs et rendre la classe instance plus sécurisée, vous devez instancier un UTF32Encoding objet en appelant le UTF32Encoding(Boolean, Boolean, Boolean) constructeur et en définissant son throwOnInvalidBytes argument sur true. Avec la détection d’erreur, une méthode qui détecte une séquence non valide de caractères ou d’octets lève une ArgumentException exception. Sans détection d’erreur, aucune exception n’est levée et la séquence non valide est généralement ignorée.

Vous pouvez instancier un UTF32Encoding objet de plusieurs manières, selon que vous souhaitez qu’il fournisse une marque d’ordre d’octet (BOM), que vous souhaitiez un encodage big-endian ou petit-endien et que vous souhaitiez activer la détection des erreurs. Le tableau suivant répertorie les UTF32Encoding constructeurs et les Encoding propriétés qui retournent un UnicodeEncoding objet.

Membre Endianness BOM Détection d'erreurs
Encoding.UTF32 Petit-endian Oui Non (remplacement de secours)
UTF32Encoding.UTF32Encoding() Petit-endian Oui Non (remplacement de secours)
UTF32Encoding.UTF32Encoding(Boolean, Boolean) Configurable Configurable Non (remplacement de secours)
UTF32Encoding.UTF32Encoding(Boolean, Boolean, Boolean) Configurable Configurable Configurable

La GetByteCount méthode détermine le nombre d’octets entraînant l’encodage d’un jeu de caractères Unicode, et la GetBytes méthode effectue l’encodage réel.

De même, la méthode détermine le GetCharCount nombre de caractères qui entraînent le décodage d’une séquence d’octets, et les GetChars méthodes et GetString effectuent le décodage réel.

Pour un encodeur ou un décodeur capable d’enregistrer des informations d’état lors de l’encodage ou du décodage de données couvrant plusieurs blocs (par exemple, une chaîne de 1 million de caractères encodé dans des segments de 100 000 caractères), utilisez les GetEncoder propriétés et GetDecoder , respectivement.

Constructeurs

UTF32Encoding()

Initialise une nouvelle instance de la classe UTF32Encoding.

UTF32Encoding(Boolean, Boolean)

Initialise une nouvelle instance de la classe UTF32Encoding. Les paramètres indiquent s'il faut utiliser l'ordre d'octet avec primauté des octets de poids fort (big-endian) et si la méthode GetPreamble() retourne une marque d'ordre d'octet Unicode.

UTF32Encoding(Boolean, Boolean, Boolean)

Initialise une nouvelle instance de la classe UTF32Encoding. Les paramètres indiquent s'il faut utiliser l'ordre d'octet avec primauté des octets de poids fort (big-endian), fournir une marque d'ordre d'octet Unicode et lever une exception en cas de détection d'un encodage non valide.

Propriétés

BodyName

En cas de substitution dans une classe dérivée, obtient un nom pour l’encodage actuel qui peut être utilisé avec les étiquettes de corps de texte de l’agent de messagerie.

(Hérité de Encoding)
CodePage

En cas de substitution dans une classe dérivée, obtient l'identificateur de la page de codes du Encoding actuel.

(Hérité de Encoding)
DecoderFallback

Obtient ou définit l'objet DecoderFallback actuel de l'objet Encoding actuel.

(Hérité de Encoding)
EncoderFallback

Obtient ou définit l'objet EncoderFallback actuel de l'objet Encoding actuel.

(Hérité de Encoding)
EncodingName

En cas de substitution dans une classe dérivée, obtient la description explicite de l'encodage actuel.

(Hérité de Encoding)
HeaderName

En cas de substitution dans une classe dérivée, obtient un nom pour l’encodage actuel qui peut être utilisé avec les étiquettes d’en-tête de l’agent de messagerie.

(Hérité de Encoding)
IsBrowserDisplay

En cas de substitution dans une classe dérivée, obtient une valeur indiquant si l'encodage actuel peut être utilisé par les clients de navigation pour afficher le contenu.

(Hérité de Encoding)
IsBrowserSave

En cas de substitution dans une classe dérivée, obtient une valeur indiquant si l'encodage actuel peut être utilisé par les clients de navigation pour enregistrer du contenu.

(Hérité de Encoding)
IsMailNewsDisplay

En cas de substitution dans une classe dérivée, obtient une valeur indiquant si l'encodage actuel peut être utilisé par les clients de messagerie et de news pour afficher du contenu.

(Hérité de Encoding)
IsMailNewsSave

En cas de substitution dans une classe dérivée, obtient une valeur indiquant si l'encodage actuel peut être utilisé par les clients de messagerie et de news pour enregistrer du contenu.

(Hérité de Encoding)
IsReadOnly

En cas de substitution dans une classe dérivée, obtient une valeur indiquant si l'encodage actuel est en lecture seule.

(Hérité de Encoding)
IsSingleByte

En cas de substitution dans une classe dérivée, obtient une valeur indiquant si l'encodage actuel utilise des points de code codés sur un octet.

(Hérité de Encoding)
Preamble

Obtient une marque d’ordre d’octet Unicode encodée au format UTF-32 si cet objet est configuré pour en fournir une.

Preamble

En cas de substitution dans une classe dérivée, retourne une étendue contenant la séquence d'octets qui spécifie l'encodage utilisé.

(Hérité de Encoding)
WebName

En cas de substitution dans une classe dérivée, obtient le nom inscrit auprès de l'IANA (Internet Assigned Numbers Authority) pour l'encodage actuel.

(Hérité de Encoding)
WindowsCodePage

En cas de substitution dans une classe dérivée, obtient la page de codes du système d'exploitation Windows la plus proche de l'encodage actuel.

(Hérité de Encoding)

Méthodes

Clone()

En cas de substitution dans une classe dérivée, crée une copie superficielle de l'objet Encoding actuel.

(Hérité de Encoding)
Equals(Object)

Détermine si l'objet Object spécifié est égal à l'objet UTF32Encoding actuel.

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[])

En cas de substitution dans une classe dérivée, calcule le nombre d'octets produits par l'encodage de tous les caractères du tableau de caractères spécifié.

(Hérité de Encoding)
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(ReadOnlySpan<Char>)

En cas de substitution dans une classe dérivée, calcule le nombre d'octets produits par l'encodage de tous les caractères de l’étendue de caractères spécifiée.

(Hérité de Encoding)
GetByteCount(String)

Calcule le nombre d'octets générés en encodant les caractères dans le String spécifié.

GetByteCount(String, Int32, Int32)

En cas de substitution dans une classe dérivée, calcule le nombre d'octets produits par l'encodage d'un jeu de caractères de la chaîne spécifiée.

(Hérité de Encoding)
GetBytes(Char*, Int32, Byte*, Int32)

Code une séquence de caractères commençant au pointeur de caractère spécifié en une séquence d'octets, qui sera stockée à partir du pointeur d'octet spécifié.

GetBytes(Char[])

En cas de substitution dans une classe dérivée, encode tous les caractères du tableau de caractères spécifié en une séquence d'octets.

(Hérité de Encoding)
GetBytes(Char[], Int32, Int32)

En cas de substitution dans une classe dérivée, encode un jeu de caractères du tableau de caractères spécifié en une séquence d'octets.

(Hérité de Encoding)
GetBytes(Char[], Int32, Int32, Byte[], Int32)

Encode un jeu de caractères du tableau de caractères spécifié dans le tableau d'octets indiqué.

GetBytes(ReadOnlySpan<Char>, Span<Byte>)

En cas de substitution dans une classe dérivée, encode un jeu de caractères du tableau de caractères en lecture seule spécifié en séquence d'octets.

(Hérité de Encoding)
GetBytes(String)

En cas de substitution dans une classe dérivée, encode tous les caractères de la chaîne spécifiée en une séquence d'octets.

(Hérité de Encoding)
GetBytes(String, Int32, Int32)

En cas de substitution dans une classe dérivée, encode en un tableau d'octets le nombre de caractères spécifié par count dans la chaîne spécifiée, à partir de l’élément index spécifié.

(Hérité de Encoding)
GetBytes(String, Int32, Int32, Byte[], Int32)

Encode un jeu de caractères de la chaîne String spécifiée dans le tableau d'octets indiqué.

GetCharCount(Byte*, Int32)

Calcule le nombre de caractères produits par le décodage d'une séquence d'octets commençant au pointeur d'octet spécifié.

GetCharCount(Byte[])

En cas de substitution dans une classe dérivée, calcule le nombre de caractères produits par le décodage de tous les octets du tableau d'octets spécifié.

(Hérité de Encoding)
GetCharCount(Byte[], Int32, Int32)

Calcule le nombre de caractères produits par le décodage d'une séquence d'octets du tableau d'octets spécifié.

GetCharCount(ReadOnlySpan<Byte>)

En cas de substitution dans une classe dérivée, calcule le nombre de caractères produits par le décodage de l’étendue d’octets en lecture seule fournie.

(Hérité de Encoding)
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[])

En cas de substitution dans une classe dérivée, décode tous les octets du tableau d'octets spécifié en jeu de caractères.

(Hérité de Encoding)
GetChars(Byte[], Int32, Int32)

En cas de substitution dans une classe dérivée, décode une séquence d'octets du tableau d'octets spécifié en un jeu de caractères.

(Hérité de Encoding)
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(ReadOnlySpan<Byte>, Span<Char>)

En cas de substitution dans une classe dérivée, décode tous les octets de l’étendue d’octets en lecture seule spécifiée en jeu de caractères.

(Hérité de Encoding)
GetDecoder()

Obtient un décodeur qui convertit une séquence d'octets encodée en UTF-32 en une séquence de caractères Unicode.

GetEncoder()

Obtient un encodeur qui convertit une séquence de caractères Unicode en une séquence d'octets encodée en UTF-32.

GetHashCode()

Retourne le code de hachage pour l'instance actuelle.

GetMaxByteCount(Int32)

Calcule le nombre maximal d'octets produits par l'encodage du nombre de caractères spécifié.

GetMaxCharCount(Int32)

Calcule le nombre maximal de caractères produits par le décodage du nombre d'octets spécifié.

GetPreamble()

Retourne une marque d'ordre d'octet Unicode encodée au format UTF-32 si l'objet UTF32Encoding est configuré pour en fournir une.

GetString(Byte*, Int32)

En cas de substitution dans une classe dérivée, décode un nombre d'octets spécifié en commençant à une adresse spécifiée dans une chaîne.

(Hérité de Encoding)
GetString(Byte[])

En cas de substitution dans une classe dérivée, décode tous les octets du tableau d'octets spécifié en chaîne.

(Hérité de Encoding)
GetString(Byte[], Int32, Int32)

Décode une plage d'octets d'un tableau d'octets en une chaîne.

GetString(ReadOnlySpan<Byte>)

En cas de substitution dans une classe dérivée, décode tous les octets de l’étendue d'octets spécifiée en chaîne.

(Hérité de Encoding)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
IsAlwaysNormalized()

Obtient une valeur indiquant si l'encodage actuel est toujours normalisé en utilisant le formulaire de normalisation par défaut.

(Hérité de Encoding)
IsAlwaysNormalized(NormalizationForm)

En cas de substitution dans une classe dérivée, obtient une valeur indiquant si l'encodage actuel est toujours normalisé en utilisant le formulaire de normalisation spécifié.

(Hérité de Encoding)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)
TryGetBytes(ReadOnlySpan<Char>, Span<Byte>, Int32)

Encode dans une plage d’octets un ensemble de caractères de l’étendue en lecture seule spécifiée si la destination est suffisamment grande.

(Hérité de Encoding)
TryGetChars(ReadOnlySpan<Byte>, Span<Char>, Int32)

Décode en une étendue de caractères un ensemble d’octets de l’étendue en lecture seule spécifiée si la destination est suffisamment grande.

(Hérité de Encoding)

Méthodes d’extension

GetBytes(Encoding, ReadOnlySequence<Char>)

Encode le ReadOnlySequence<T> spécifié dans un tableau Byte à l’aide du Encoding spécifié.

GetBytes(Encoding, ReadOnlySequence<Char>, IBufferWriter<Byte>)

Décode le ReadOnlySequence<T> spécifié en bytes à l’aide du Encoding spécifié et écrit le résultat dans writer.

GetBytes(Encoding, ReadOnlySequence<Char>, Span<Byte>)

Encode le ReadOnlySequence<T> spécifié en bytes à l’aide du Encoding spécifié et génère le résultat dans bytes.

GetBytes(Encoding, ReadOnlySpan<Char>, IBufferWriter<Byte>)

Encode le ReadOnlySpan<T> spécifié en bytes à l’aide du Encoding spécifié et écrit le résultat dans writer.

GetChars(Encoding, ReadOnlySequence<Byte>, IBufferWriter<Char>)

Décode le ReadOnlySequence<T> spécifié en chars à l’aide du Encoding spécifié et écrit le résultat dans writer.

GetChars(Encoding, ReadOnlySequence<Byte>, Span<Char>)

Décode le ReadOnlySequence<T> spécifié en chars à l’aide du Encoding spécifié et génère le résultat dans chars.

GetChars(Encoding, ReadOnlySpan<Byte>, IBufferWriter<Char>)

Décode le ReadOnlySpan<T> spécifié en chars à l’aide du Encoding spécifié et écrit le résultat dans writer.

GetString(Encoding, ReadOnlySequence<Byte>)

Décode le ReadOnlySequence<T> spécifié en un String à l’aide du Encoding spécifié.

S’applique à

Voir aussi