Compartir a través de


UTF32Encoding Clase

Definición

Representa una codificación UTF-32 de caracteres 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
Herencia
UTF32Encoding
Atributos

Ejemplos

En el ejemplo siguiente se muestra el comportamiento de los objetos con y sin la detección de UTF32Encoding errores habilitada. Crea una matriz de bytes cuyos últimos cuatro bytes representan un par suplente no válido; el suplente alto U+D8FF va seguido de un U+01FF, que está fuera del intervalo de suplentes bajos (0xDC00 a través de 0xDFFF). Sin detección de errores, el descodificador UTF32 usa la reserva de reemplazo para reemplazar el par suplente no válido por 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ăǽβ�

En el ejemplo siguiente se codifica una cadena de caracteres Unicode en una matriz de bytes mediante un UTF32Encoding objeto . A continuación, la matriz de bytes se descodifica en una cadena para demostrar que no hay pérdida de datos.

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 (Σ).

En el ejemplo siguiente se usa la misma cadena que la anterior, salvo que escribe los bytes codificados en un archivo y prefijos la secuencia de bytes con una marca de orden de bytes (BOM). A continuación, lee el archivo de dos maneras diferentes: como un archivo de texto mediante un StreamReader objeto y como un archivo binario. Como cabría esperar, ninguna de las cadenas recién leídas incluye la BOM.

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 (Σ).

Comentarios

Codificar es el proceso de transformar un conjunto de caracteres Unicode en una secuencia de bytes. La descodificación es el proceso de transformar una secuencia de bytes codificados en un conjunto de caracteres Unicode.

El estándar Unicode asigna un punto de código (un número) a cada carácter de cada script admitido. Un formato de transformación Unicode (UTF) es una manera de codificar ese punto de código. El estándar Unicode usa las siguientes UDF:

  • UTF-8, que representa cada punto de código como una secuencia de uno a cuatro bytes.

  • UTF-16, que representa cada punto de código como una secuencia de uno a dos enteros de 16 bits.

  • UTF-32, que representa cada punto de código como un entero de 32 bits.

Para obtener más información sobre las UDF y otras codificaciones compatibles con System.Text, vea Codificación de caracteres en .NET.

La UTF32Encoding clase representa una codificación UTF-32. El codificador puede usar el orden de bytes big endian (el byte más significativo primero) o el orden de bytes pequeño endian (primero el byte menos significativo). Por ejemplo, la letra mayúscula latina A (punto de código U+0041) se serializa de la siguiente manera (en hexadecimal):

  • Orden de bytes big endian: 00 00 00 41

  • Orden de bytes little endian: 41 00 00 00

Por lo general, es más eficaz almacenar caracteres Unicode mediante el orden de bytes nativo. Por ejemplo, es mejor usar el orden de little endian bytes en little endian plataformas, como los equipos Intel. UTF32Encoding corresponde a las páginas de códigos de Windows 12000 (orden de bytes little endian) y 12001 (orden de bytes big endian). Puede determinar la "endianidad" de una arquitectura determinada llamando al BitConverter.IsLittleEndian método .

Opcionalmente, el UTF32Encoding objeto proporciona una marca de orden de bytes (BOM), que es una matriz de bytes que se puede prefijar a la secuencia de bytes resultante del proceso de codificación. Si el preámbulo contiene una marca de orden de bytes (BOM), ayuda al descodificador a determinar el orden de bytes y el formato de transformación o UTF de una matriz de bytes.

Si la UTF32Encoding instancia está configurada para proporcionar una lista de materiales, puede recuperarla llamando al GetPreamble método ; de lo contrario, el método devuelve una matriz vacía. Tenga en cuenta que, incluso si un UTF32Encoding objeto está configurado para la compatibilidad con BOM, debe incluir la BOM al principio de la secuencia de bytes codificada según corresponda; los métodos de codificación de la UTF32Encoding clase no lo hacen automáticamente.

Precaución

Para habilitar la detección de errores y para que la instancia de clase sea más segura, debe crear una instancia de un UTF32Encoding objeto llamando al UTF32Encoding(Boolean, Boolean, Boolean) constructor y estableciendo su throwOnInvalidBytes argumento en true. Con la detección de errores, un método que detecta una secuencia de caracteres o bytes no válida produce una ArgumentException excepción. Sin detección de errores, no se produce ninguna excepción y se suele omitir la secuencia no válida.

Puede crear instancias de un UTF32Encoding objeto de varias maneras, en función de si desea que proporcione una marca de orden de bytes (BOM), tanto si desea codificar big-endian como little-endian, y si desea habilitar la detección de errores. En la tabla siguiente se enumeran los UTF32Encoding constructores y las Encoding propiedades que devuelven un UnicodeEncoding objeto .

Miembro Modos endian BOM Detección de errores
Encoding.UTF32 Little-endian No (reserva de reemplazo)
UTF32Encoding.UTF32Encoding() Little-endian No (reserva de reemplazo)
UTF32Encoding.UTF32Encoding(Boolean, Boolean) Configurable Configurable No (reserva de reemplazo)
UTF32Encoding.UTF32Encoding(Boolean, Boolean, Boolean) Configurable Configurable Configurable

El GetByteCount método determina el número de bytes que dan como resultado la codificación de un conjunto de caracteres Unicode y el GetBytes método realiza la codificación real.

Del mismo modo, el GetCharCount método determina cuántos caracteres dan como resultado la descodificación de una secuencia de bytes, y los GetChars métodos y GetString realizan la descodificación real.

Para un codificador o descodificador que pueda guardar información de estado al codificar o descodificar datos que abarcan varios bloques (como una cadena de 1 millón de caracteres codificados en segmentos de 100 000 caracteres), use las GetEncoder propiedades y GetDecoder , respectivamente.

Constructores

UTF32Encoding()

Inicializa una nueva instancia de la clase UTF32Encoding.

UTF32Encoding(Boolean, Boolean)

Inicializa una nueva instancia de la clase UTF32Encoding. Los parámetros especifican si se usa el orden de bytes big endian y si el método GetPreamble() devuelve una marca de orden de bytes Unicode.

UTF32Encoding(Boolean, Boolean, Boolean)

Inicializa una nueva instancia de la clase UTF32Encoding. Los parámetros especifican si se usa el orden de bytes big endian, si se proporciona una marca de orden de bytes Unicode y si se produce una excepción cuando se detecta una codificación no válida.

Propiedades

BodyName

Cuando se reemplaza en una clase derivada, obtiene un nombre para la codificación actual que se puede utilizar con etiquetas de cuerpo de un programa de correo.

(Heredado de Encoding)
CodePage

Cuando se reemplaza en una clase derivada, obtiene el identificador de la página de códigos de la clase Encoding actual.

(Heredado de Encoding)
DecoderFallback

Obtiene o establece el objeto DecoderFallback para el objeto Encoding actual.

(Heredado de Encoding)
EncoderFallback

Obtiene o establece el objeto EncoderFallback para el objeto Encoding actual.

(Heredado de Encoding)
EncodingName

Cuando se reemplaza en una clase derivada, obtiene la descripción inteligible de la codificación actual.

(Heredado de Encoding)
HeaderName

Cuando se reemplaza en una clase derivada, obtiene un nombre para la codificación actual que se puede utilizar con etiquetas de encabezado de un programa de correo.

(Heredado de Encoding)
IsBrowserDisplay

Cuando se reemplaza en una clase derivada, obtiene un valor que indica si los clientes del explorador pueden utilizar la codificación actual para mostrar el contenido.

(Heredado de Encoding)
IsBrowserSave

Cuando se reemplaza en una clase derivada, obtiene un valor que indica si los clientes del explorador pueden utilizar la codificación actual para guardar el contenido.

(Heredado de Encoding)
IsMailNewsDisplay

Cuando se reemplaza en una clase derivada, obtiene un valor que indica si los clientes de correo y de noticias pueden utilizar la codificación actual para mostrar el contenido.

(Heredado de Encoding)
IsMailNewsSave

Cuando se reemplaza en una clase derivada, obtiene un valor que indica si los clientes de correo y de noticias pueden utilizar la codificación actual para guardar el contenido.

(Heredado de Encoding)
IsReadOnly

Cuando se reemplaza en una clase derivada, obtiene un valor que indica si la codificación actual es de solo lectura.

(Heredado de Encoding)
IsSingleByte

Cuando se reemplaza en una clase derivada, obtiene un valor que indica si la codificación actual utiliza puntos de código de un solo byte.

(Heredado de Encoding)
Preamble

Obtiene una marca BOM Unicode codificada en formato UTF-32, si el objeto se ha configurado para proporcionarla.

Preamble

Cuando se invalida en una clase derivada, devuelve un intervalo que contiene la secuencia de bytes que especifica la codificación utilizada.

(Heredado de Encoding)
WebName

Cuando se reemplaza en una clase derivada, obtiene el nombre registrado en IANA (Internet Assigned Numbers Authority) para la codificación actual.

(Heredado de Encoding)
WindowsCodePage

Cuando se reemplaza en una clase derivada, obtiene la página de códigos del sistema operativo Windows que se corresponde mejor con la codificación actual.

(Heredado de Encoding)

Métodos

Clone()

Cuando se reemplaza en una clase derivada, crea una copia superficial del objeto Encoding actual.

(Heredado de Encoding)
Equals(Object)

Determina si el objeto Object especificado es igual al objeto UTF32Encoding actual.

GetByteCount(Char*, Int32)

Calcula el número de bytes generado mediante la codificación de un juego de caracteres a partir del puntero de caracteres especificado.

GetByteCount(Char[])

Cuando se reemplaza en una clase derivada, calcula el número de bytes que se generan al codificar todos los caracteres de la matriz de caracteres especificada.

(Heredado de Encoding)
GetByteCount(Char[], Int32, Int32)

Calcula el número de bytes generado mediante la codificación de un juego de caracteres de la matriz de caracteres especificada.

GetByteCount(ReadOnlySpan<Char>)

Cuando se invalida en una clase derivada, calcula el número de bytes que se generan al codificar los caracteres del intervalo de caracteres especificado.

(Heredado de Encoding)
GetByteCount(String)

Calcula el número de bytes generado al codificar los caracteres del objeto String especificado.

GetByteCount(String, Int32, Int32)

Cuando se invalida en una clase derivada, calcula el número de bytes que se generan al codificar un juego de caracteres a partir de la cadena especificada.

(Heredado de Encoding)
GetBytes(Char*, Int32, Byte*, Int32)

Codifica un juego de caracteres a partir del puntero de caracteres especificado en una secuencia de bytes que se almacenan a partir del puntero de bytes especificado.

GetBytes(Char[])

Cuando se reemplaza en una clase derivada, codifica todos los caracteres de la matriz de caracteres especificada en una secuencia de bytes.

(Heredado de Encoding)
GetBytes(Char[], Int32, Int32)

Cuando se reemplaza en una clase derivada, codifica un juego de caracteres de la matriz de caracteres especificada en una secuencia de bytes.

(Heredado de Encoding)
GetBytes(Char[], Int32, Int32, Byte[], Int32)

Codifica un juego de caracteres de la matriz de caracteres determinada en la matriz de bytes especificada.

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

Cuando se invalida en una clase derivada, codifica en un intervalo de bytes un juego de caracteres a partir del intervalo de solo lectura especificado.

(Heredado de Encoding)
GetBytes(String)

Cuando se reemplaza en una clase derivada, codifica todos los caracteres de la cadena especificada en una secuencia de bytes.

(Heredado de Encoding)
GetBytes(String, Int32, Int32)

Cuando se invalida en una clase derivada, codifica en una matriz de bytes el número de caracteres especificado por count en la cadena especificada, empezando por el elemento index especificado.

(Heredado de Encoding)
GetBytes(String, Int32, Int32, Byte[], Int32)

Codifica un juego de caracteres del objeto String especificado en la matriz de bytes especificada.

GetCharCount(Byte*, Int32)

Calcula el número de caracteres generado mediante la descodificación de una secuencia de bytes a partir del puntero de bytes especificado.

GetCharCount(Byte[])

Cuando se reemplaza en una clase derivada, calcula el número de caracteres que se generan al descodificar todos los bytes de la matriz de bytes especificada.

(Heredado de Encoding)
GetCharCount(Byte[], Int32, Int32)

Calcula el número de caracteres generado mediante la descodificación de una secuencia de bytes a partir de la matriz de bytes especificada.

GetCharCount(ReadOnlySpan<Byte>)

Cuando se invalida en una clase derivada, calcula el número de caracteres que se generan al descodificar el intervalo de bytes de solo lectura proporcionado.

(Heredado de Encoding)
GetChars(Byte*, Int32, Char*, Int32)

Descodifica una secuencia de bytes a partir del puntero de bytes especificado en un juego de caracteres que se almacenan a partir del puntero de caracteres especificado.

GetChars(Byte[])

Cuando se reemplaza en una clase derivada, descodifica todos los bytes de la matriz de bytes especificada en un juego de caracteres.

(Heredado de Encoding)
GetChars(Byte[], Int32, Int32)

Cuando se reemplaza en una clase derivada, descodifica una secuencia de bytes de la matriz de bytes especificada en un juego de caracteres.

(Heredado de Encoding)
GetChars(Byte[], Int32, Int32, Char[], Int32)

Descodifica una secuencia de bytes de la matriz de bytes especificada en la matriz de caracteres especificada.

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

Cuando se invalida en una clase derivada, descodifica todos los bytes del intervalo de bytes de solo lectura especificado en un intervalo de caracteres.

(Heredado de Encoding)
GetDecoder()

Obtiene un descodificador que convierte una secuencia de bytes codificada en UTF-32 en una secuencia de caracteres Unicode.

GetEncoder()

Obtiene un codificador que convierte una secuencia de caracteres Unicode en una secuencia de bytes codificada en UTF-32.

GetHashCode()

Devuelve el código hash de la instancia actual.

GetMaxByteCount(Int32)

Calcula el número máximo de bytes generado mediante la codificación del número de caracteres especificado.

GetMaxCharCount(Int32)

Calcula el número máximo de caracteres generado mediante la descodificación del número de bytes especificado.

GetPreamble()

Devuelve una marca de orden de bytes Unicode codificada en formato UTF-32, si el objeto UTF32Encoding está configurado para proporcionarla.

GetString(Byte*, Int32)

Cuando se reemplaza en una clase derivada, descodifica un número determinado de bytes a partir de una dirección especificada en una cadena.

(Heredado de Encoding)
GetString(Byte[])

Cuando se reemplaza en una clase derivada, descodifica todos los bytes de la matriz de bytes especificada en una cadena.

(Heredado de Encoding)
GetString(Byte[], Int32, Int32)

Descodifica un intervalo de bytes de una matriz de bytes en una cadena.

GetString(ReadOnlySpan<Byte>)

Cuando se invalida en una clase derivada, descodifica todos los bytes del intervalo de bytes especificado en una cadena.

(Heredado de Encoding)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
IsAlwaysNormalized()

Obtiene un valor que indica si la codificación actual siempre se normaliza, utilizando la forma de normalización predeterminada.

(Heredado de Encoding)
IsAlwaysNormalized(NormalizationForm)

Cuando se reemplaza en una clase derivada, obtiene un valor que indica si la codificación actual siempre se normaliza mediante la forma de normalización especificada.

(Heredado de Encoding)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)
TryGetBytes(ReadOnlySpan<Char>, Span<Byte>, Int32)

Codifica en un intervalo de bytes un conjunto de caracteres del intervalo de solo lectura especificado si el destino es lo suficientemente grande.

(Heredado de Encoding)
TryGetChars(ReadOnlySpan<Byte>, Span<Char>, Int32)

Descodifica en un intervalo de caracteres un conjunto de bytes del intervalo de solo lectura especificado si el destino es lo suficientemente grande.

(Heredado de Encoding)

Métodos de extensión

GetBytes(Encoding, ReadOnlySequence<Char>)

Codifica el elemento ReadOnlySequence<T> especificado en una matriz Byte mediante el elemento Encoding especificado.

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

Descodifica el elemento ReadOnlySequence<T> especificado en bytes mediante el elemento Encoding especificado y escribe el resultado en writer.

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

Codifica el elemento ReadOnlySequence<T> especificado en bytes mediante el elemento Encoding especificado y envía el resultado a bytes.

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

Codifica el elemento ReadOnlySpan<T> especificado en bytes mediante el elemento Encoding especificado y escribe el resultado en writer.

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

Descodifica el elemento ReadOnlySequence<T> especificado en chars mediante el elemento Encoding especificado y escribe el resultado en writer.

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

Descodifica el elemento ReadOnlySequence<T> especificado en chars mediante el elemento Encoding especificado y envía el resultado a chars.

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

Descodifica el elemento ReadOnlySpan<T> especificado en chars mediante el elemento Encoding especificado y escribe el resultado en writer.

GetString(Encoding, ReadOnlySequence<Byte>)

Descodifica el elemento ReadOnlySequence<T> especificado en String mediante el elemento Encoding especificado.

Se aplica a

Consulte también