UTF32Encoding Klasse

Definition

Stellt eine UTF-32-Codierung von Unicode-Zeichen dar.Represents a UTF-32 encoding of Unicode characters.

public ref class UTF32Encoding sealed : System::Text::Encoding
[System.Serializable]
public sealed class UTF32Encoding : System.Text.Encoding
type UTF32Encoding = class
    inherit Encoding
Public NotInheritable Class UTF32Encoding
Inherits Encoding
Vererbung
UTF32Encoding
Attribute

Beispiele

Im folgenden Beispiel wird das Verhalten von UTF32Encoding -Objekten mit und ohne Fehlererkennung veranschaulicht.The following example demonstrates the behavior of UTF32Encoding objects with and without error detection enabled. Es wird ein Bytearray erstellt, dessen letzte vier Bytes ein ungültiges Ersatz Zeichenpaar darstellen. auf das hohe Ersatz Zeichen "u + D8FF" folgt ein u + 01FF, das außerhalb des Bereichs der unteren Surrogates liegt (0xDC00 bis 0xDFFF).It creates a byte array whose last four bytes represent an invalid surrogate pair; the high surrogate U+D8FF is followed by an U+01FF, which is outside the range of low surrogates (0xDC00 through 0xDFFF). Ohne Fehlererkennung verwendet der UTF32-Decoder den Ersatz Fall Back, um das ungültige Ersatz Zeichenpaar durch Ersatz Zeichen (U + FFFD) zu ersetzen.Without error detection, the UTF32 decoder uses replacement fallback to replace the invalid surrogate pair with 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ăǽβ�

Im folgenden Beispiel wird eine Zeichenfolge von Unicode-Zeichen in ein Bytearray codiert, indem ein UTF32Encoding -Objekt verwendet wird.The following example encodes a string of Unicode characters into a byte array by using a UTF32Encoding object. Das Bytearray wird dann in eine Zeichenfolge decodiert, um zu veranschaulichen, dass kein Datenverlust vorliegt.The byte array is then decoded into a string to demonstrate that there is no loss of data.

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

Im folgenden Beispiel wird dieselbe Zeichenfolge wie die vorherige verwendet, außer dass die codierten Bytes in eine Datei geschrieben und der Bytestream mit einer Byte Reihenfolge Markierung (BOM) vorangestellt wird.The following example uses the same string as the previous one, except that it writes the encoded bytes to a file and prefixes the byte stream with a byte order mark (BOM). Anschließend wird die Datei auf zwei verschiedene Arten gelesen: als Textdatei mithilfe eines StreamReader -Objekts und als Binärdatei.It then reads the file in two different ways: as a text file by using a StreamReader object; and as a binary file. Erwartungsgemäß enthält weder die neu gelesene Zeichenfolge die BOM.As you would expect, neither newly-read string includes the 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 (Σ).

Hinweise

Beim Kodieren werden Unicode-Zeichen in eine Bytefolge transformiert.Encoding is the process of transforming a set of Unicode characters into a sequence of bytes. Beim Decodieren wird eine Sequenz codierter Bytes in eine Gruppe von Unicode-Zeichen transformiert.Decoding is the process of transforming a sequence of encoded bytes into a set of Unicode characters.

Gemäß Unicode-Standard werden jedem Zeichen aller unterstützten Skripts ein Codepunkt (eine Zahl) und ein Name zugewiesen.The Unicode Standard assigns a code point (a number) to each character in every supported script. UTF (Unicode Transformation Format) ist eine Möglichkeit, diesen Codepunkt zu codieren.A Unicode Transformation Format (UTF) is a way to encode that code point. Der Unicode-Standard verwendet die folgenden UTFs:The Unicode Standard uses the following UTFs:

  • UTF-8, das die einzelnen Code Punkte als Sequenz von einem bis vier Bytes darstellt.UTF-8, which represents each code point as a sequence of one to four bytes.

  • UTF-16, das die einzelnen Code Punkte als Sequenz von einer bis zu 2 16-Bit-Ganzzahlen darstellt.UTF-16, which represents each code point as a sequence of one to two 16-bit integers.

  • UTF-32, das die einzelnen Code Punkte als 32-Bit-Ganzzahl darstellt.UTF-32, which represents each code point as a 32-bit integer.

Weitere Informationen zu den von System.Textunterstützten UTFs und anderen Codierungen finden Sie unter Zeichencodierung in .net.For more information about the UTFs and other encodings supported by System.Text, see Character Encoding in .NET.

Die UTF32Encoding -Klasse stellt eine UTF-32-Codierung dar.The UTF32Encoding class represents a UTF-32 encoding. Der Encoder kann die Big-Endian-Byte Reihenfolge (signifikanteste Byte zuerst) oder die kleine Endian-Byte Reihenfolge (das niedrigste signifikante Byte zuerst) verwenden.The encoder can use the big endian byte order (most significant byte first) or the little endian byte order (least significant byte first). Der lateinische Großbuchstabe A (Codepunkt U + 0041) wird z. b. wie folgt serialisiert (in Hexadezimal):For example, the Latin Capital Letter A (code point U+0041) is serialized as follows (in hexadecimal):

  • Big-Endian-Byte Reihenfolge: 00 00 00 41Big endian byte order: 00 00 00 41

  • Little-Endian-Byte Reihenfolge: 41 00 00 00Little endian byte order: 41 00 00 00

Es ist in der Regel effizienter, Unicode-Zeichen mithilfe der systemeigenen Byte Reihenfolge zu speichern.It is generally more efficient to store Unicode characters using the native byte order. Beispielsweise ist es besser, die Little-Endian-Byte Reihenfolge auf kleinen Endian-Plattformen wie z. b. Intel-Computern zu verwenden.For example, it is better to use the little endian byte order on little endian platforms, such as Intel computers. UTF32Encodingentspricht den Windows-Codepages 12000 (Little-Endian-Byte Reihenfolge) und 12001 (Big Endian-Byte Reihenfolge).UTF32Encoding corresponds to the Windows code pages 12000 (little endian byte order) and 12001 (big endian byte order). Durch Aufrufen der BitConverter.IsLittleEndian -Methode können Sie die "umdianness" einer bestimmten Architektur bestimmen.You can determine the "endianness" of a particular architecture by calling the BitConverter.IsLittleEndian method.

Optional stellt das UTF32Encoding -Objekt eine Byte Reihenfolge-Marke (BOM) bereit, bei der es sich um ein Bytearray handelt, dem die Byte Sequenz vorangestellt werden kann, die sich aus dem Codierungsprozess ergibt.Optionally, the UTF32Encoding object provides a byte order mark (BOM), which is an array of bytes that can be prefixed to the sequence of bytes resulting from the encoding process. Wenn die Präambel eine Byte Reihenfolge-Marke (BOM) enthält, unterstützt Sie der Decoder dabei, die Byte Reihenfolge und das Transformations Format oder UTF eines Bytearrays zu bestimmen.If the preamble contains a byte order mark (BOM), it helps the decoder determine the byte order and the transformation format or UTF of a byte array.

Wenn die UTF32Encoding -Instanz so konfiguriert ist, dass Sie eine BOM bereitstellt, können Sie GetPreamble Sie durch Aufrufen der-Methode abrufen. andernfalls gibt die Methode ein leeres Array zurück.If the UTF32Encoding instance is configured to provide a BOM, you can retrieve it by calling the GetPreamble method; otherwise, the method returns an empty array. Beachten Sie, dass Sie, UTF32Encoding auch wenn ein-Objekt für die BOM-Unterstützung konfiguriert ist, die BOM nach Bedarf am Anfang des codierten Bytestreams einschließen müssen UTF32Encoding . die Codierungs Methoden der-Klasse führen dies nicht automatisch aus.Note that, even if a UTF32Encoding object is configured for BOM support, you must include the BOM at the beginning of the encoded byte stream as appropriate; the encoding methods of the UTF32Encoding class do not do this automatically.

Achtung

Um die Fehlererkennung zu aktivieren und die Klasseninstanz sicherer zu machen, sollten Sie UTF32Encoding ein-Objekt instanziieren, indem Sie den UTF32Encoding(Boolean, Boolean, Boolean) -Konstruktor aufrufen trueund sein throwOnInvalidBytes -Argument auf festlegen.To enable error detection and to make the class instance more secure, you should instantiate a UTF32Encoding object by calling the UTF32Encoding(Boolean, Boolean, Boolean) constructor and setting its throwOnInvalidBytes argument to true. Bei der Fehlererkennung löst eine Methode, die eine ungültige Sequenz von Zeichen oder Bytes ArgumentException erkennt, eine Ausnahme aus.With error detection, a method that detects an invalid sequence of characters or bytes throws an ArgumentException exception. Ohne Fehlererkennung wird keine Ausnahme ausgelöst, und die ungültige Sequenz wird im Allgemeinen ignoriert.Without error detection, no exception is thrown, and the invalid sequence is generally ignored.

Sie können ein UTF32Encoding -Objekt auf verschiedene Weise instanziieren, abhängig davon, ob Sie eine Byte Reihenfolge-Marke (BOM) bereitstellen möchten, ob Sie Big-Endian-oder Little-Endian-Codierung wünschen und ob Sie die Fehlererkennung aktivieren möchten.You can instantiate a UTF32Encoding object in a number of ways, depending on whether you want to it to provide a byte order mark (BOM), whether you want big-endian or little-endian encoding, and whether you want to enable error detection. In der folgenden Tabelle werden UTF32Encoding die-Konstruktoren Encoding und die-Eigenschaften UnicodeEncoding aufgelistet, die ein-Objekt zurückgeben.The following table lists the UTF32Encoding constructors and the Encoding properties that return a UnicodeEncoding object.

MemberMember EndiannessEndianness BOMBOM FehlererkennungError detection
Encoding.UTF32 Little-dLittle-endian JaYes Nein (Ersatz Fall Back)No (Replacement fallback)
UTF32Encoding.UTF32Encoding() Little-dLittle-endian JaYes Nein (Ersatz Fall Back)No (Replacement fallback)
UTF32Encoding.UTF32Encoding(Boolean, Boolean) KonfigurierbareConfigurable KonfigurierbareConfigurable Nein (Ersatz Fall Back)No (Replacement fallback)
UTF32Encoding.UTF32Encoding(Boolean, Boolean, Boolean) KonfigurierbareConfigurable KonfigurierbareConfigurable KonfigurierbareConfigurable

Die GetByteCount -Methode bestimmt, wie viele Bytes zum Codieren eines Satzes von Unicode-Zeichen GetBytes führen, und die-Methode führt die eigentliche Codierung aus.The GetByteCount method determines how many bytes result in encoding a set of Unicode characters, and the GetBytes method performs the actual encoding.

Die GetCharCount -Methode bestimmt entsprechend, wie viele Zeichen eine Bytefolge decodiert, und die GetChars - GetString und-Methoden führen die eigentliche Decodierung aus.Likewise, the GetCharCount method determines how many characters result in decoding a sequence of bytes, and the GetChars and GetString methods perform the actual decoding.

Für einen Encoder oder Decoder, der zum Speichern von Zustandsinformationen, die beim Codieren oder Decodieren von Daten, die umfasst mehrere Blöcke (z. B. String von 1 Mio. Zeichen, die in Segmenten von 100.000 Zeichen codiert wird) verwenden, können die GetEncoder und GetDecoder Eigenschaften bzw.For an encoder or decoder that is able to save state information when encoding or decoding data that spans multiple blocks (such as string of 1 million characters that is encoded in 100,000-character segments), use the GetEncoder and GetDecoder properties, respectively.

Konstruktoren

UTF32Encoding()

Initialisiert eine neue Instanz der UTF32Encoding-Klasse.Initializes a new instance of the UTF32Encoding class.

UTF32Encoding(Boolean, Boolean)

Initialisiert eine neue Instanz der UTF32Encoding-Klasse.Initializes a new instance of the UTF32Encoding class. Parameter geben an, ob die Big-Endian-Bytereihenfolge verwendet werden soll und die GetPreamble()-Methode eine Unicode-Bytereihenfolgemarkierung zurückgibt.Parameters specify whether to use the big endian byte order and whether the GetPreamble() method returns a Unicode byte order mark.

UTF32Encoding(Boolean, Boolean, Boolean)

Initialisiert eine neue Instanz der UTF32Encoding-Klasse.Initializes a new instance of the UTF32Encoding class. Parameter geben an, ob die Big-Endian-Bytereihenfolge verwendet, eine Unicode-Bytereihenfolgemarkierung bereitgestellt und beim Erkennen einer ungültigen Codierung eine Ausnahme ausgelöst werden soll.Parameters specify whether to use the big endian byte order, whether to provide a Unicode byte order mark, and whether to throw an exception when an invalid encoding is detected.

Eigenschaften

BodyName

Beim Überschreiben in einer abgeleiteten Klasse wird ein Name für die aktuelle Codierung abgerufen, die mit den Body-Tags des E-Mail-Agenten verwendet werden kann.When overridden in a derived class, gets a name for the current encoding that can be used with mail agent body tags.

(Geerbt von Encoding)
CodePage

Ruft den Codepagebezeichner der aktuellen Encoding-Klasse beim Überschreiben in einer abgeleiteten Klasse ab.When overridden in a derived class, gets the code page identifier of the current Encoding.

(Geerbt von Encoding)
DecoderFallback

Ruft das DecoderFallback-Objekt für das aktuelle Encoding-Objekt ab.Gets or sets the DecoderFallback object for the current Encoding object.

(Geerbt von Encoding)
EncoderFallback

Ruft das EncoderFallback-Objekt für das aktuelle Encoding-Objekt ab.Gets or sets the EncoderFallback object for the current Encoding object.

(Geerbt von Encoding)
EncodingName

Beim Überschreiben in einer abgeleiteten Klasse wird die Klartextbeschreibung der aktuellen Codierung abgerufen.When overridden in a derived class, gets the human-readable description of the current encoding.

(Geerbt von Encoding)
HeaderName

Beim Überschreiben in einer abgeleiteten Klasse wird ein Name für die aktuelle Codierung abgerufen, die mit den Header-Tags des E-Mail-Agenten verwendet werden kann.When overridden in a derived class, gets a name for the current encoding that can be used with mail agent header tags.

(Geerbt von Encoding)
IsBrowserDisplay

Beim Überschreiben in einer abgeleiteten Klasse wird ein Wert abgerufen, der angibt, ob die aktuelle Codierung von Browserclients zum Anzeigen des Inhalts verwendet werden kann.When overridden in a derived class, gets a value indicating whether the current encoding can be used by browser clients for displaying content.

(Geerbt von Encoding)
IsBrowserSave

Beim Überschreiben in einer abgeleiteten Klasse wird ein Wert abgerufen, der angibt, ob die aktuelle Codierung von Browserclients zum Speichern von Inhalt verwendet werden kann.When overridden in a derived class, gets a value indicating whether the current encoding can be used by browser clients for saving content.

(Geerbt von Encoding)
IsMailNewsDisplay

Beim Überschreiben in einer abgeleiteten Klasse wird ein Wert abgerufen, der angibt, ob die aktuelle Codierung von Mail- und Newsclients zum Anzeigen von Inhalt verwendet werden kann.When overridden in a derived class, gets a value indicating whether the current encoding can be used by mail and news clients for displaying content.

(Geerbt von Encoding)
IsMailNewsSave

Beim Überschreiben in einer abgeleiteten Klasse wird ein Wert abgerufen, der angibt, ob die aktuelle Codierung von Mail- und Newsclients zum Speichern von Inhalt verwendet werden kann.When overridden in a derived class, gets a value indicating whether the current encoding can be used by mail and news clients for saving content.

(Geerbt von Encoding)
IsReadOnly

Ruft beim Überschreiben in einer abgeleiteten Klasse einen Wert ab, der angibt, ob die aktuelle Codierung schreibgeschützt ist.When overridden in a derived class, gets a value indicating whether the current encoding is read-only.

(Geerbt von Encoding)
IsSingleByte

Ruft beim Überschreiben in einer abgeleiteten Klasse einen Wert ab, der angibt, ob die aktuelle Codierung Einzelbyte-Codepunkte verwendet.When overridden in a derived class, gets a value indicating whether the current encoding uses single-byte code points.

(Geerbt von Encoding)
Preamble

Ruft eine Unicode-Bytereihenfolgemarkierung im UTF-32-Format ab, wenn dieses Objekt entsprechend konfiguriert ist.Gets a Unicode byte order mark encoded in UTF-32 format, if this object is configured to supply one.

WebName

Beim Überschreiben in einer abgeleiteten Klasse wird der Name für die aktuelle Codierung bei der Internet Assigned Numbers Authority (IANA) registriert.When overridden in a derived class, gets the name registered with the Internet Assigned Numbers Authority (IANA) for the current encoding.

(Geerbt von Encoding)
WindowsCodePage

Beim Überschreiben in einer abgeleiteten Klasse wird die Codepage des Betriebssystems Windows abgerufen, die der aktuellen Codierung am ehesten entspricht.When overridden in a derived class, gets the Windows operating system code page that most closely corresponds to the current encoding.

(Geerbt von Encoding)

Methoden

Clone()

Erstellt beim Überschreiben in einer abgeleiteten Klasse eine flache Kopie des aktuellen Encoding-Objekts.When overridden in a derived class, creates a shallow copy of the current Encoding object.

(Geerbt von Encoding)
Equals(Object)

Bestimmt, ob das angegebene Object und das aktuelle UTF32Encoding-Objekt gleich sind.Determines whether the specified Object is equal to the current UTF32Encoding object.

GetByteCount(Char*, Int32)

Berechnet die Anzahl der Bytes, die beim Codieren der Zeichen ab dem angegebenen Zeichenzeiger erzeugt werden.Calculates the number of bytes produced by encoding a set of characters starting at the specified character pointer.

GetByteCount(Char[])

Berechnet beim Überschreiben in einer abgeleiteten Klasse die Anzahl an Bytes, die beim Codieren aller Zeichen im angegebenen Zeichenarray erzeugt werden.When overridden in a derived class, calculates the number of bytes produced by encoding all the characters in the specified character array.

(Geerbt von Encoding)
GetByteCount(Char[], Int32, Int32)

Berechnet die Anzahl der Bytes, die beim Codieren der Zeichen aus dem angegebenen Zeichenarray erzeugt werden.Calculates the number of bytes produced by encoding a set of characters from the specified character array.

GetByteCount(ReadOnlySpan<Char>) (Geerbt von Encoding)
GetByteCount(String)

Berechnet die Anzahl der Bytes, die durch das Codieren der Zeichen in der angegebenen String-Klasse erzeugt werden.Calculates the number of bytes produced by encoding the characters in the specified String.

GetByteCount(String, Int32, Int32) (Geerbt von Encoding)
GetBytes(Char*, Int32, Byte*, Int32)

Codiert Zeichen beginnend am angegebenen Zeichenzeiger in eine Bytefolge, die beginnend am angegebenen Bytezeiger gespeichert wird.Encodes a set of characters starting at the specified character pointer into a sequence of bytes that are stored starting at the specified byte pointer.

GetBytes(Char[])

Beim Überschreiben in einer abgeleiteten Klasse werden alle Zeichen im angegebenen Zeichenarray in eine Bytefolge codiert.When overridden in a derived class, encodes all the characters in the specified character array into a sequence of bytes.

(Geerbt von Encoding)
GetBytes(Char[], Int32, Int32)

Beim Überschreiben in einer abgeleiteten Klasse werden die Zeichen im angegebenen Zeichenarray in eine Bytefolge codiert.When overridden in a derived class, encodes a set of characters from the specified character array into a sequence of bytes.

(Geerbt von Encoding)
GetBytes(Char[], Int32, Int32, Byte[], Int32)

Codiert Zeichen aus dem angegebenen Zeichenarray in das angegebene Bytearray.Encodes a set of characters from the specified character array into the specified byte array.

GetBytes(ReadOnlySpan<Char>, Span<Byte>) (Geerbt von Encoding)
GetBytes(String)

Beim Überschreiben in einer abgeleiteten Klasse werden alle Zeichen in der angegebenen Zeichenfolge in eine Bytefolge codiert.When overridden in a derived class, encodes all the characters in the specified string into a sequence of bytes.

(Geerbt von Encoding)
GetBytes(String, Int32, Int32) (Geerbt von Encoding)
GetBytes(String, Int32, Int32, Byte[], Int32)

Codiert Zeichen aus der angegebenen String-Klasse in das angegebene Bytearray.Encodes a set of characters from the specified String into the specified byte array.

GetCharCount(Byte*, Int32)

Berechnet die Anzahl der Zeichen, die beim Decodieren einer Bytefolge ab dem angegebenen Bytezeiger erzeugt werden.Calculates the number of characters produced by decoding a sequence of bytes starting at the specified byte pointer.

GetCharCount(Byte[])

Berechnet beim Überschreiben in einer abgeleiteten Klasse die Anzahl der Zeichen, die beim Decodieren aller Bytes in dem angegebenen Bytearray erzeugt werden.When overridden in a derived class, calculates the number of characters produced by decoding all the bytes in the specified byte array.

(Geerbt von Encoding)
GetCharCount(Byte[], Int32, Int32)

Berechnet die Anzahl der Zeichen, die beim Decodieren einer Bytefolge aus dem angegebenen Bytearray erzeugt werden.Calculates the number of characters produced by decoding a sequence of bytes from the specified byte array.

GetCharCount(ReadOnlySpan<Byte>) (Geerbt von Encoding)
GetChars(Byte*, Int32, Char*, Int32)

Decodiert eine Bytefolge beginnend am angegebenen Bytezeiger in Zeichen, die beginnend am angegebenen Zeichenzeiger gespeichert werden.Decodes a sequence of bytes starting at the specified byte pointer into a set of characters that are stored starting at the specified character pointer.

GetChars(Byte[])

Beim Überschreiben in einer abgeleiteten Klasse werden alle Bytes im angegebenen Bytearray in Zeichen decodiert.When overridden in a derived class, decodes all the bytes in the specified byte array into a set of characters.

(Geerbt von Encoding)
GetChars(Byte[], Int32, Int32)

Beim Überschreiben in einer abgeleiteten Klasse wird eine Bytefolge aus dem angegebenen Bytearray in Zeichen decodiert.When overridden in a derived class, decodes a sequence of bytes from the specified byte array into a set of characters.

(Geerbt von Encoding)
GetChars(Byte[], Int32, Int32, Char[], Int32)

Decodiert eine Bytefolge aus dem angegebenen Bytearray in das angegebene Zeichenarray.Decodes a sequence of bytes from the specified byte array into the specified character array.

GetChars(ReadOnlySpan<Byte>, Span<Char>) (Geerbt von Encoding)
GetDecoder()

Ruft einen Decoder ab, der eine UTF-32-codierte Bytefolge in eine Unicode-Zeichenfolge konvertiert.Obtains a decoder that converts a UTF-32 encoded sequence of bytes into a sequence of Unicode characters.

GetEncoder()

Ruft einen Encoder ab, der eine Unicode-Zeichenfolge in eine UTF-32-codierte Bytefolge konvertiert.Obtains an encoder that converts a sequence of Unicode characters into a UTF-32 encoded sequence of bytes.

GetHashCode()

Gibt den Hashcode für die aktuelle Instanz zurück.Returns the hash code for the current instance.

GetMaxByteCount(Int32)

Berechnet die maximale Anzahl der Bytes, die beim Codieren der angegebenen Anzahl von Zeichen erzeugt wird.Calculates the maximum number of bytes produced by encoding the specified number of characters.

GetMaxCharCount(Int32)

Berechnet die maximale Anzahl der Zeichen, die beim Decodieren der angegebenen Anzahl von Bytes erzeugt werden.Calculates the maximum number of characters produced by decoding the specified number of bytes.

GetPreamble()

Gibt eine Unicode-Bytereihenfolgemarkierung im UTF-32-Format zurück, wenn das UTF32Encoding-Objekt dafür konfiguriert ist, eine solche bereitzustellen.Returns a Unicode byte order mark encoded in UTF-32 format, if the UTF32Encoding object is configured to supply one.

GetString(Byte*, Int32)

Beim Überschreiben in einer abgeleiteten Klasse wird eine angegebene Anzahl von Bytes ab einer angegebenen Adresse in eine Zeichenfolge decodiert.When overridden in a derived class, decodes a specified number of bytes starting at a specified address into a string.

(Geerbt von Encoding)
GetString(Byte[])

Beim Überschreiben in einer abgeleiteten Klasse werden alle Bytes im angegebenen Bytearray in eine Zeichenfolge decodiert.When overridden in a derived class, decodes all the bytes in the specified byte array into a string.

(Geerbt von Encoding)
GetString(Byte[], Int32, Int32)

Decodiert einen Bytebereich aus einem Bytearray in eine Zeichenfolge.Decodes a range of bytes from a byte array into a string.

GetString(ReadOnlySpan<Byte>) (Geerbt von Encoding)
GetType()

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

(Geerbt von Object)
IsAlwaysNormalized()

Ruft einen Wert ab, der angibt, ob die aktuelle Codierung immer normalisiert ist. Es wird die Standardnormalisierungsform verwendet.Gets a value indicating whether the current encoding is always normalized, using the default normalization form.

(Geerbt von Encoding)
IsAlwaysNormalized(NormalizationForm)

Beim Überschreiben in einer abgeleiteten Klasse wird ein Wert abgerufen, der angibt, ob die aktuelle Codierung immer normalisiert ist. Hierzu wird die angegebene Normalisierungsform verwendet.When overridden in a derived class, gets a value indicating whether the current encoding is always normalized, using the specified normalization form.

(Geerbt von Encoding)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.Returns a string that represents the current object.

(Geerbt von Object)

Gilt für:

Siehe auch