UTF32Encoding Třída

Definice

Představuje kódování UTF-32 znaků Unicode.Represents a UTF-32 encoding of Unicode characters.

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
Dědičnost
UTF32Encoding
Atributy

Příklady

Následující příklad ukazuje chování UTF32Encoding objektů s povolenou funkcí a bez povoleného zjištění chyb.The following example demonstrates the behavior of UTF32Encoding objects with and without error detection enabled. Vytvoří pole bajtů, jejichž poslední čtyři bajty reprezentují neplatný náhradní pár; vysoká náhrada U + D8FF je následována U + 01FF, která je mimo rozsah nízkých náhrad (0xDC00 až 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). Bez zjištění chyby používá dekodér platná UTF32 náhradní zálohu k nahrazení neplatného náhradního páru ZNAKem U + FFFD.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ăǽβ�

Následující příklad kóduje řetězec znaků Unicode do pole bajtů pomocí UTF32Encoding objektu.The following example encodes a string of Unicode characters into a byte array by using a UTF32Encoding object. Bajtové pole je poté dekódovat do řetězce, aby bylo znázorněno, že nedochází ke ztrátě dat.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 (Σ).

Následující příklad používá stejný řetězec jako předchozí, s tím rozdílem, že zapisuje kódované bajty do souboru a předpony bajtového datového proudu s znakem pořadí bajtů (BOM).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). Pak soubor přečte dvěma různými způsoby: jako textový soubor pomocí StreamReader objektu a jako binární soubor.It then reads the file in two different ways: as a text file by using a StreamReader object; and as a binary file. Stejně jako byste očekávali, ani jeden ze dvou řetězců pro čtení nezahrnuje 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 (Σ).

Poznámky

Kódování je proces transformace sady znaků Unicode na sekvenci bajtů.Encoding is the process of transforming a set of Unicode characters into a sequence of bytes. Dekódování je proces transformace posloupnosti kódovaných bajtů do sady znaků Unicode.Decoding is the process of transforming a sequence of encoded bytes into a set of Unicode characters.

Standard Unicode přiřadí každému znaku v každém podporovaném skriptu bod kódu (číslo).The Unicode Standard assigns a code point (a number) to each character in every supported script. Kódování Unicode Transformation Format (UTF) je způsob, jak tento bod kódu kódovat.A Unicode Transformation Format (UTF) is a way to encode that code point. Standard Unicode používá následující UTFs:The Unicode Standard uses the following UTFs:

  • UTF-8, který představuje každý bod kódu jako sekvenci jednoho až čtyř bajtů.UTF-8, which represents each code point as a sequence of one to four bytes.

  • UTF-16, který představuje každý bod kódu jako sekvenci jednoho až 2 16 celých čísel.UTF-16, which represents each code point as a sequence of one to two 16-bit integers.

  • UTF-32, který představuje každý bod kódu jako 32 celé číslo.UTF-32, which represents each code point as a 32-bit integer.

Další informace o UTFs a dalších kódováních podporovaných nástrojem naleznete v System.Text tématu kódování znaků v rozhraní .NET.For more information about the UTFs and other encodings supported by System.Text, see Character Encoding in .NET.

UTF32EncodingTřída představuje kódování UTF-32.The UTF32Encoding class represents a UTF-32 encoding. Kodér může použít pořadí bajtů ve velkém (nejvýznamnějším bajtu) nebo minimální pořadí bajtů ve endian (nejméně značný bajt jako první).The encoder can use the big endian byte order (most significant byte first) or the little endian byte order (least significant byte first). Například velké písmeno latinky A (bod kódu U + 0041) je serializováno takto (v šestnáctkové soustavě):For example, the Latin Capital Letter A (code point U+0041) is serialized as follows (in hexadecimal):

  • Pořadí bajtů ve velkém endian: 00 00 00 41Big endian byte order: 00 00 00 41

  • Pořadí bajtů v řádu Little endian: 41 00 00 00Little endian byte order: 41 00 00 00

Obecně je efektivnější ukládat znaky Unicode pomocí pořadí nativních bajtů.It is generally more efficient to store Unicode characters using the native byte order. Například je lepší používat v počítačích s malým endian v řádu Little endian, jako jsou například počítače Intel.For example, it is better to use the little endian byte order on little endian platforms, such as Intel computers. UTF32Encoding odpovídá kódovým stránkám Windows 12000 (Little endian Byte) a 12001 (pořadí bajtů Big Endian).UTF32Encoding corresponds to the Windows code pages 12000 (little endian byte order) and 12001 (big endian byte order). Můžete určit "endian" konkrétní architektury voláním BitConverter.IsLittleEndian metody.You can determine the "endianness" of a particular architecture by calling the BitConverter.IsLittleEndian method.

V případě potřeby UTF32Encoding objekt poskytuje znak pořadí bajtů (BOM), což je pole bajtů, které může být předponou posloupnosti bajtů vycházejících z procesu kódování.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. Pokud preambule obsahuje znak pořadí bajtů (BOM), pomůže dekodéru určit pořadí bajtů a formát transformace nebo kódování UTF pole bajtů.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.

Pokud UTF32Encoding je instance nakonfigurována tak, aby poskytovala kusovník, lze ji načíst voláním GetPreamble metody. v opačném případě metoda vrátí prázdné pole.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. Všimněte si, že i v případě, že UTF32Encoding je objekt nakonfigurován pro podporu kusovníku, je nutné podle potřeby zahrnout kusovník na začátek kódovaného datového proudu bajtů. metody kódování UTF32Encoding třídy to nedělají automaticky.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.

Upozornění

Chcete-li povolit detekci chyb a zvýšit zabezpečení instance třídy, měli byste vytvořit instanci UTF32Encoding objektu voláním UTF32Encoding(Boolean, Boolean, Boolean) konstruktoru a nastavením jeho throwOnInvalidBytes argumentu na true .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. S detekcí chyb vyvolá metodu, která detekuje neplatnou sekvenci znaků nebo bajtů, ArgumentException výjimku.With error detection, a method that detects an invalid sequence of characters or bytes throws an ArgumentException exception. Bez detekce chyb není vyvolána žádná výjimka a neplatná sekvence je obecně ignorována.Without error detection, no exception is thrown, and the invalid sequence is generally ignored.

Můžete vytvořit instanci UTF32Encoding objektu mnoha různými způsoby, v závislosti na tom, zda chcete zadat znak pořadí bajtů (BOM), zda chcete kódování big endian nebo little endian a zda chcete povolit detekci chyb.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. V následující tabulce jsou uvedeny UTF32Encoding konstruktory a Encoding vlastnosti, které vracejí UnicodeEncoding objekt.The following table lists the UTF32Encoding constructors and the Encoding properties that return a UnicodeEncoding object.

ČlenMember EndianitouEndianness BOMBOM Detekce chybError detection
Encoding.UTF32 Little endianLittle-endian AnoYes Ne (náhradní záložní)No (Replacement fallback)
UTF32Encoding.UTF32Encoding() Little endianLittle-endian AnoYes Ne (náhradní záložní)No (Replacement fallback)
UTF32Encoding.UTF32Encoding(Boolean, Boolean) KonfigurovatelnéConfigurable KonfigurovatelnéConfigurable Ne (náhradní záložní)No (Replacement fallback)
UTF32Encoding.UTF32Encoding(Boolean, Boolean, Boolean) KonfigurovatelnéConfigurable KonfigurovatelnéConfigurable KonfigurovatelnéConfigurable

GetByteCountMetoda určuje, kolik bajtů má za následek kódování sady znaků Unicode a GetBytes Metoda provede skutečné kódování.The GetByteCount method determines how many bytes result in encoding a set of Unicode characters, and the GetBytes method performs the actual encoding.

Podobně GetCharCount Metoda určuje, kolik znaků vede k dekódování sekvence bajtů a GetChars GetString metody a provádějí skutečné dekódování.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.

Pro kodér nebo dekodér, které umožňují uložit informace o stavu při kódování nebo dekódování dat, která přesahují více bloků (například řetězec o 1 000 000 znaků, které jsou zakódovány v segmentech 100 000 znaků), GetEncoder použijte GetDecoder vlastnosti a v uvedeném pořadí.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.

Konstruktory

UTF32Encoding()

Inicializuje novou instanci UTF32Encoding třídy.Initializes a new instance of the UTF32Encoding class.

UTF32Encoding(Boolean, Boolean)

Inicializuje novou instanci UTF32Encoding třídy.Initializes a new instance of the UTF32Encoding class. Parametry určují, jestli se má použít pořadí bajtů big endian a jestli GetPreamble() Metoda vrátí značku pořadí bajtů Unicode.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)

Inicializuje novou instanci UTF32Encoding třídy.Initializes a new instance of the UTF32Encoding class. Parametry určují, jestli se má použít pořadí bajtů ve formátu big endian, jestli se má zadat značka pořadí bajtů Unicode, a jestli se má vyvolat výjimka, když se zjistí neplatné kódování.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.

Vlastnosti

BodyName

Při přepsání v odvozené třídě získá název pro aktuální kódování, které lze použít s značkami textu agenta pošty.When overridden in a derived class, gets a name for the current encoding that can be used with mail agent body tags.

(Zděděno od Encoding)
CodePage

Při přepsání v odvozené třídě získá identifikátor kódové stránky aktuálního Encoding .When overridden in a derived class, gets the code page identifier of the current Encoding.

(Zděděno od Encoding)
DecoderFallback

Získá nebo nastaví DecoderFallback objekt pro aktuální Encoding objekt.Gets or sets the DecoderFallback object for the current Encoding object.

(Zděděno od Encoding)
EncoderFallback

Získá nebo nastaví EncoderFallback objekt pro aktuální Encoding objekt.Gets or sets the EncoderFallback object for the current Encoding object.

(Zděděno od Encoding)
EncodingName

Při přepsání v odvozené třídě získá popis aktuálního kódování čitelný uživatelem.When overridden in a derived class, gets the human-readable description of the current encoding.

(Zděděno od Encoding)
HeaderName

Při přepsání v odvozené třídě získá název pro aktuální kódování, které lze použít s značkami záhlaví agenta pošty.When overridden in a derived class, gets a name for the current encoding that can be used with mail agent header tags.

(Zděděno od Encoding)
IsBrowserDisplay

Při přepsání v odvozené třídě získá hodnotu, která označuje, jestli aktuální kódování můžou používat klienti prohlížeče pro zobrazování obsahu.When overridden in a derived class, gets a value indicating whether the current encoding can be used by browser clients for displaying content.

(Zděděno od Encoding)
IsBrowserSave

Při přepsání v odvozené třídě získá hodnotu, která označuje, jestli aktuální kódování můžou používat klienti prohlížeče pro ukládání obsahu.When overridden in a derived class, gets a value indicating whether the current encoding can be used by browser clients for saving content.

(Zděděno od Encoding)
IsMailNewsDisplay

Při přepsání v odvozené třídě získá hodnotu, která označuje, zda lze aktuální kódování použít pro e-mailové a diskusní klienty pro zobrazení obsahu.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.

(Zděděno od Encoding)
IsMailNewsSave

Při přepsání v odvozené třídě získá hodnotu, která označuje, zda lze aktuální kódování použít pro e-mailové a diskusní klienty pro ukládání obsahu.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.

(Zděděno od Encoding)
IsReadOnly

Při přepsání v odvozené třídě získá hodnotu, která označuje, zda je aktuální kódování jen pro čtení.When overridden in a derived class, gets a value indicating whether the current encoding is read-only.

(Zděděno od Encoding)
IsSingleByte

Při přepsání v odvozené třídě získá hodnotu, která označuje, zda aktuální kódování používá jednobajtové body kódu.When overridden in a derived class, gets a value indicating whether the current encoding uses single-byte code points.

(Zděděno od Encoding)
Preamble

Získá značku pořadí bajtů Unicode kódovanou ve formátu UTF-32, pokud je tento objekt nakonfigurován tak, aby poskytoval jeden.Gets a Unicode byte order mark encoded in UTF-32 format, if this object is configured to supply one.

Preamble

Při přepsání v odvozené třídě vrátí rozsah obsahující sekvenci bajtů, která určuje použité kódování.When overridden in a derived class, returns a span containing the sequence of bytes that specifies the encoding used.

(Zděděno od Encoding)
WebName

Při přepsání v odvozené třídě získá název zaregistrovaný autoritou IANA (Internet Assigned Numbers Authority) pro aktuální kódování.When overridden in a derived class, gets the name registered with the Internet Assigned Numbers Authority (IANA) for the current encoding.

(Zděděno od Encoding)
WindowsCodePage

Při přepsání v odvozené třídě získá znakovou stránku operačního systému Windows, která nejlépe odpovídá aktuálnímu kódování.When overridden in a derived class, gets the Windows operating system code page that most closely corresponds to the current encoding.

(Zděděno od Encoding)

Metody

Clone()

Při přepsání v odvozené třídě vytvoří kopii aktuálního objektu bez podstruktury Encoding .When overridden in a derived class, creates a shallow copy of the current Encoding object.

(Zděděno od Encoding)
Equals(Object)

Určuje, zda Object je zadaný objekt roven aktuálnímu UTF32Encoding objektu.Determines whether the specified Object is equal to the current UTF32Encoding object.

GetByteCount(Char*, Int32)

Vypočítá počet bajtů vyprodukovaných pomocí kódování sady znaků počínaje zadaným ukazatelem znaku.Calculates the number of bytes produced by encoding a set of characters starting at the specified character pointer.

GetByteCount(Char[])

Při přepsání v odvozené třídě vypočítá počet bajtů vyprodukovaných pomocí kódování všech znaků v zadaném poli znaků.When overridden in a derived class, calculates the number of bytes produced by encoding all the characters in the specified character array.

(Zděděno od Encoding)
GetByteCount(Char[], Int32, Int32)

Vypočítá počet bajtů vyprodukovaných pomocí kódování sady znaků ze zadaného pole znaků.Calculates the number of bytes produced by encoding a set of characters from the specified character array.

GetByteCount(ReadOnlySpan<Char>)

Při přepsání v odvozené třídě vypočítá počet bajtů vyprodukovaných kódováním znaků v zadaném znakovém rozsahu.When overridden in a derived class, calculates the number of bytes produced by encoding the characters in the specified character span.

(Zděděno od Encoding)
GetByteCount(String)

Vypočítá počet bajtů vyprodukovaných pomocí kódování znaků v zadaném String .Calculates the number of bytes produced by encoding the characters in the specified String.

GetByteCount(String, Int32, Int32)

Při přepsání v odvozené třídě vypočítá počet bajtů vyprodukovaných pomocí kódování sady znaků ze zadaného řetězce.When overridden in a derived class, calculates the number of bytes produced by encoding a set of characters from the specified string.

(Zděděno od Encoding)
GetBytes(Char*, Int32, Byte*, Int32)

Zakóduje sadu znaků počínaje zadaným ukazatelem znaku do sekvence bajtů, které jsou uloženy počínaje zadaným bajtovým ukazatelem.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[])

Při přepsání v odvozené třídě zakóduje všechny znaky v zadaném znakovém poli do sekvence bajtů.When overridden in a derived class, encodes all the characters in the specified character array into a sequence of bytes.

(Zděděno od Encoding)
GetBytes(Char[], Int32, Int32)

Při přepsání v odvozené třídě zakóduje sadu znaků ze zadaného pole znaků do sekvence bajtů.When overridden in a derived class, encodes a set of characters from the specified character array into a sequence of bytes.

(Zděděno od Encoding)
GetBytes(Char[], Int32, Int32, Byte[], Int32)

Zakóduje sadu znaků ze zadaného pole znaků do zadaného bajtového pole.Encodes a set of characters from the specified character array into the specified byte array.

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

Při přepsání v odvozené třídě, zakóduje do rozpětí bajtů sadu znaků ze zadaného rozsahu určeného jen pro čtení.When overridden in a derived class, encodes into a span of bytes a set of characters from the specified read-only span.

(Zděděno od Encoding)
GetBytes(String)

Při přepsání v odvozené třídě zakóduje všechny znaky v zadaném řetězci do sekvence bajtů.When overridden in a derived class, encodes all the characters in the specified string into a sequence of bytes.

(Zděděno od Encoding)
GetBytes(String, Int32, Int32)

Při přepsání v odvozené třídě se zakóduje do pole bajtů o počet znaků určený count v zadaném řetězci počínaje zadaným řetězcem index .When overridden in a derived class, encodes into an array of bytes the number of characters specified by count in the specified string, starting from the specified index.

(Zděděno od Encoding)
GetBytes(String, Int32, Int32, Byte[], Int32)

Zakóduje sadu znaků ze zadaného String do zadaného bajtového pole.Encodes a set of characters from the specified String into the specified byte array.

GetCharCount(Byte*, Int32)

Vypočítá počet znaků vyprodukovaných dekódováním posloupnosti bajtů počínaje zadaným ukazatelem bajtů.Calculates the number of characters produced by decoding a sequence of bytes starting at the specified byte pointer.

GetCharCount(Byte[])

Při přepsání v odvozené třídě vypočítá počet znaků vyprodukovaných dekódováním všech bajtů v zadaném bajtovém poli.When overridden in a derived class, calculates the number of characters produced by decoding all the bytes in the specified byte array.

(Zděděno od Encoding)
GetCharCount(Byte[], Int32, Int32)

Vypočítá počet znaků vyprodukovaných dekódováním posloupnosti bajtů ze zadaného bajtového pole.Calculates the number of characters produced by decoding a sequence of bytes from the specified byte array.

GetCharCount(ReadOnlySpan<Byte>)

Při přepsání v odvozené třídě vypočítá počet znaků vyprodukovaných dekódováním poskytnutého rozsahu bajtů jen pro čtení.When overridden in a derived class, calculates the number of characters produced by decoding the provided read-only byte span.

(Zděděno od Encoding)
GetChars(Byte*, Int32, Char*, Int32)

Dekóduje sekvenci bajtů počínaje zadaným znakem bajtu do sady znaků, které jsou uloženy počínaje zadaným ukazatelem znaku.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[])

Při přepsání v odvozené třídě Dekóduje všechny bajty v zadaném bajtovém poli do sady znaků.When overridden in a derived class, decodes all the bytes in the specified byte array into a set of characters.

(Zděděno od Encoding)
GetChars(Byte[], Int32, Int32)

Při přepsání v odvozené třídě Dekóduje sekvenci bajtů ze zadaného bajtového pole do sady znaků.When overridden in a derived class, decodes a sequence of bytes from the specified byte array into a set of characters.

(Zděděno od Encoding)
GetChars(Byte[], Int32, Int32, Char[], Int32)

Dekóduje sekvenci bajtů ze zadaného bajtového pole do zadaného pole znaků.Decodes a sequence of bytes from the specified byte array into the specified character array.

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

Při přepsání v odvozené třídě Dekóduje všechny bajty v zadaném bajtovém rozsahu jen pro čtení do rozsahu znaků.When overridden in a derived class, decodes all the bytes in the specified read-only byte span into a character span.

(Zděděno od Encoding)
GetDecoder()

Získá dekodér, který převede posloupnost bajtů kódovaných v kódování UTF-32 na sekvenci znaků Unicode.Obtains a decoder that converts a UTF-32 encoded sequence of bytes into a sequence of Unicode characters.

GetEncoder()

Získá kodér, který převede sekvenci znaků Unicode na sekvenci bajtů zakódované v kódování UTF-32.Obtains an encoder that converts a sequence of Unicode characters into a UTF-32 encoded sequence of bytes.

GetHashCode()

Vrátí kód hodnoty hash aktuální instance.Returns the hash code for the current instance.

GetMaxByteCount(Int32)

Vypočítá maximální počet bajtů vyprodukovaných pomocí kódování zadaného počtu znaků.Calculates the maximum number of bytes produced by encoding the specified number of characters.

GetMaxCharCount(Int32)

Vypočítá maximální počet znaků vyprodukovaných dekódováním zadaného počtu bajtů.Calculates the maximum number of characters produced by decoding the specified number of bytes.

GetPreamble()

Vrátí znak pořadí bajtů Unicode kódovaný ve formátu UTF-32, pokud UTF32Encoding je objekt nakonfigurován tak, aby poskytoval jeden.Returns a Unicode byte order mark encoded in UTF-32 format, if the UTF32Encoding object is configured to supply one.

GetString(Byte*, Int32)

Při přepsání v odvozené třídě Dekóduje zadaný počet bajtů počínaje zadanou adresou do řetězce.When overridden in a derived class, decodes a specified number of bytes starting at a specified address into a string.

(Zděděno od Encoding)
GetString(Byte[])

Při přepsání v odvozené třídě Dekóduje všechny bajty v zadaném bajtovém poli do řetězce.When overridden in a derived class, decodes all the bytes in the specified byte array into a string.

(Zděděno od Encoding)
GetString(Byte[], Int32, Int32)

Dekóduje rozsah bajtů z pole bajtů do řetězce.Decodes a range of bytes from a byte array into a string.

GetString(ReadOnlySpan<Byte>)

Při přepsání v odvozené třídě Dekóduje všechny bajty v zadaném bajtovém rozsahu do řetězce.When overridden in a derived class, decodes all the bytes in the specified byte span into a string.

(Zděděno od Encoding)
GetType()

Získá Type aktuální instanci.Gets the Type of the current instance.

(Zděděno od Object)
IsAlwaysNormalized()

Získá hodnotu, která označuje, zda je aktuální kódování vždy normalizováno, pomocí výchozího formuláře normalizace.Gets a value indicating whether the current encoding is always normalized, using the default normalization form.

(Zděděno od Encoding)
IsAlwaysNormalized(NormalizationForm)

Při přepsání v odvozené třídě získá hodnotu, která označuje, zda je aktuální kódování vždy normalizováno pomocí zadaného formuláře normalizace.When overridden in a derived class, gets a value indicating whether the current encoding is always normalized, using the specified normalization form.

(Zděděno od Encoding)
MemberwiseClone()

Vytvoří kopii aktuálního seznamu Object .Creates a shallow copy of the current Object.

(Zděděno od Object)
ToString()

Vrátí řetězec, který představuje aktuální objekt.Returns a string that represents the current object.

(Zděděno od Object)

Metody rozšíření

GetBytes(Encoding, ReadOnlySequence<Char>)

Zakóduje zadanou ReadOnlySequence<T> hodnotu do Byte pole pomocí zadaného Encoding .Encodes the specified ReadOnlySequence<T> into a Byte array using the specified Encoding.

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

Dekóduje určenou ReadOnlySequence<T> na byte s pomocí zadaného Encoding a zapisuje výsledek do writer .Decodes the specified ReadOnlySequence<T> to bytes using the specified Encoding and writes the result to writer.

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

Zakóduje zadaný ReadOnlySequence<T> do byte s pomocí zadaného Encoding a výstupem výsledku do bytes .Encodes the specified ReadOnlySequence<T> to bytes using the specified Encoding and outputs the result to bytes.

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

Zakóduje zadaný ReadOnlySpan<T> do byte s pomocí zadaného Encoding a zapíše výsledek do writer .Encodes the specified ReadOnlySpan<T> to bytes using the specified Encoding and writes the result to writer.

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

Dekóduje určenou ReadOnlySequence<T> na char s pomocí zadaného Encoding a zapisuje výsledek do writer .Decodes the specified ReadOnlySequence<T> to chars using the specified Encoding and writes the result to writer.

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

Dekóduje určenou ReadOnlySequence<T> na char s pomocí zadaného Encoding a výstupem výsledku do chars .Decodes the specified ReadOnlySequence<T> to chars using the specified Encoding and outputs the result to chars.

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

Dekóduje určenou ReadOnlySpan<T> na char s pomocí zadaného Encoding a zapisuje výsledek do writer .Decodes the specified ReadOnlySpan<T> to chars using the specified Encoding and writes the result to writer.

GetString(Encoding, ReadOnlySequence<Byte>)

Dekóduje zadaný ReadOnlySequence<T> do a String pomocí zadaného Encoding .Decodes the specified ReadOnlySequence<T> into a String using the specified Encoding.

Platí pro

Viz také