Bagikan melalui


UTF32Encoding Kelas

Definisi

Mewakili pengodean UTF-32 dari karakter 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
Warisan
UTF32Encoding
Atribut

Contoh

Contoh berikut menunjukkan perilaku UTF32Encoding objek dengan dan tanpa deteksi kesalahan diaktifkan. Ini membuat array byte yang empat byte terakhirnya mewakili pasangan pengganti yang tidak valid; U+D8FF pengganti tinggi diikuti oleh U+01FF, yang berada di luar kisaran pengganti rendah (0xDC00 melalui 0xDFFF). Tanpa deteksi kesalahan, dekoder UTF32 menggunakan fallback pengganti untuk mengganti pasangan pengganti yang tidak valid dengan 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ăǽβ�

Contoh berikut mengodekan string karakter Unicode ke dalam array byte dengan menggunakan UTF32Encoding objek . Array byte kemudian didekodekan ke dalam string untuk menunjukkan bahwa tidak ada kehilangan 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 (Σ).

Contoh berikut menggunakan string yang sama dengan yang sebelumnya, kecuali bahwa ia menulis byte yang dikodekan ke file dan mengawali aliran byte dengan tanda urutan byte (BOM). Kemudian membaca file dengan dua cara berbeda: sebagai file teks dengan menggunakan StreamReader objek; dan sebagai file biner. Seperti yang Anda harapkan, untai (karakter) yang baru dibaca tidak menyertakan 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 (Σ).

Keterangan

Pengodean adalah proses mengubah sekumpulan karakter Unicode menjadi urutan byte. Pendekodean adalah proses mengubah urutan byte yang dikodekan menjadi satu set karakter Unicode.

Standar Unicode menetapkan titik kode (angka) untuk setiap karakter di setiap skrip yang didukung. Format Transformasi Unicode (UTF) adalah cara untuk mengodekan titik kode tersebut. Standar Unicode menggunakan UTF berikut:

  • UTF-8, yang mewakili setiap titik kode sebagai urutan satu hingga empat byte.

  • UTF-16, yang mewakili setiap titik kode sebagai urutan satu hingga dua bilangan bulat 16-bit.

  • UTF-32, yang mewakili setiap titik kode sebagai bilangan bulat 32-bit.

Untuk informasi selengkapnya tentang UTF dan pengodean lainnya yang didukung oleh System.Text, lihat Pengodean Karakter di .NET.

Kelas UTF32Encoding mewakili pengodean UTF-32. Encoder dapat menggunakan urutan byte big endian (byte paling signifikan terlebih dahulu) atau urutan byte little endian (byte paling tidak signifikan terlebih dahulu). Misalnya, Huruf Latin Kapital A (titik kode U+0041) diserialisasikan sebagai berikut (dalam heksadesimal):

  • Urutan byte big endian: 00 00 00 41

  • Urutan byte little endian: 41 00 00 00

Umumnya lebih efisien untuk menyimpan karakter Unicode menggunakan urutan byte asli. Misalnya, lebih baik menggunakan urutan byte little endian pada platform little endian, seperti komputer Intel. UTF32Encoding sesuai dengan halaman kode Windows 12000 (urutan byte little endian) dan 12001 (urutan byte big endian). Anda dapat menentukan "endianness" dari arsitektur tertentu dengan memanggil BitConverter.IsLittleEndian metode .

Secara opsional, UTF32Encoding objek menyediakan tanda urutan byte (BOM), yang merupakan array byte yang dapat diawali dengan urutan byte yang dihasilkan dari proses pengodean. Jika preamble berisi tanda urutan byte (BOM), itu membantu dekoder menentukan urutan byte dan format transformasi atau UTF dari array byte.

Jika instans dikonfigurasi UTF32Encoding untuk menyediakan BOM, Anda dapat mengambilnya dengan memanggil GetPreamble metode ; jika tidak, metode mengembalikan array kosong. Perhatikan bahwa, meskipun UTF32Encoding objek dikonfigurasi untuk dukungan BOM, Anda harus menyertakan BOM di awal aliran byte yang dikodekan sebagaimana mestinya; metode pengodean UTF32Encoding kelas tidak melakukan ini secara otomatis.

Perhatian

Untuk mengaktifkan deteksi kesalahan dan membuat instans kelas lebih aman, Anda harus membuat instans UTF32Encoding objek dengan memanggil UTF32Encoding(Boolean, Boolean, Boolean) konstruktor dan mengatur argumennya throwOnInvalidBytes ke true. Dengan deteksi kesalahan, metode yang mendeteksi urutan karakter atau byte yang ArgumentException tidak valid memberikan pengecualian. Tanpa deteksi kesalahan, tidak ada pengecualian yang dilemparkan, dan urutan yang tidak valid umumnya diabaikan.

Anda dapat membuat instans UTF32Encoding objek dalam sejumlah cara, tergantung pada apakah Anda ingin objek tersebut memberikan tanda urutan byte (BOM), apakah Anda menginginkan pengodean big-endian atau little-endian, dan apakah Anda ingin mengaktifkan deteksi kesalahan. Tabel berikut mencantumkan UTF32Encoding konstruktor dan Encoding properti yang mengembalikan UnicodeEncoding objek.

Anggota Endianness BOM Deteksi kesalahan
Encoding.UTF32 Little-endian Ya Tidak (Penggantian fallback)
UTF32Encoding.UTF32Encoding() Little-endian Ya Tidak (Penggantian fallback)
UTF32Encoding.UTF32Encoding(Boolean, Boolean) Dapat dikonfigurasi Dapat dikonfigurasi Tidak (Penggantian fallback)
UTF32Encoding.UTF32Encoding(Boolean, Boolean, Boolean) Dapat dikonfigurasi Dapat dikonfigurasi Dapat dikonfigurasi

Metode ini GetByteCount menentukan berapa banyak byte yang menghasilkan pengodean sekumpulan karakter Unicode, dan GetBytes metode melakukan pengodean aktual.

Demikian juga, GetCharCount metode menentukan berapa banyak karakter yang menghasilkan pendekodean urutan byte, dan GetChars metode dan GetString melakukan decoding aktual.

Untuk encoder atau decoder yang dapat menyimpan informasi status saat mengodekan atau mendekode data yang mencakup beberapa blok (seperti string 1 juta karakter yang dikodekan dalam segmen 100.000 karakter), gunakan GetEncoder properti dan GetDecoder , masing-masing.

Konstruktor

UTF32Encoding()

Menginisialisasi instans baru kelas UTF32Encoding.

UTF32Encoding(Boolean, Boolean)

Menginisialisasi instans baru kelas UTF32Encoding. Parameter menentukan apakah akan menggunakan urutan byte big endian dan apakah GetPreamble() metode mengembalikan tanda urutan byte Unicode.

UTF32Encoding(Boolean, Boolean, Boolean)

Menginisialisasi instans baru kelas UTF32Encoding. Parameter menentukan apakah akan menggunakan urutan byte big endian, apakah akan memberikan tanda urutan byte Unicode, dan apakah akan melemparkan pengecualian ketika pengodean yang tidak valid terdeteksi.

Properti

BodyName

Ketika ditimpa di kelas turunan, mendapatkan nama untuk pengodean saat ini yang dapat digunakan dengan tag isi agen email.

(Diperoleh dari Encoding)
CodePage

Ketika ditimpa di kelas turunan, mendapatkan pengidentifikasi halaman kode dari saat ini Encoding.

(Diperoleh dari Encoding)
DecoderFallback

Mendapatkan atau mengatur DecoderFallback objek untuk objek saat ini Encoding .

(Diperoleh dari Encoding)
EncoderFallback

Mendapatkan atau mengatur EncoderFallback objek untuk objek saat ini Encoding .

(Diperoleh dari Encoding)
EncodingName

Ketika ditimpa di kelas turunan, mendapatkan deskripsi yang dapat dibaca manusia dari pengodean saat ini.

(Diperoleh dari Encoding)
HeaderName

Ketika ditimpa di kelas turunan, mendapatkan nama untuk pengodean saat ini yang dapat digunakan dengan tag header agen email.

(Diperoleh dari Encoding)
IsBrowserDisplay

Ketika ditimpa di kelas turunan, mendapatkan nilai yang menunjukkan apakah pengodean saat ini dapat digunakan oleh klien browser untuk menampilkan konten.

(Diperoleh dari Encoding)
IsBrowserSave

Ketika ditimpa di kelas turunan, mendapatkan nilai yang menunjukkan apakah pengodean saat ini dapat digunakan oleh klien browser untuk menyimpan konten.

(Diperoleh dari Encoding)
IsMailNewsDisplay

Ketika ditimpa di kelas turunan, mendapatkan nilai yang menunjukkan apakah pengodean saat ini dapat digunakan oleh klien email dan berita untuk menampilkan konten.

(Diperoleh dari Encoding)
IsMailNewsSave

Ketika ditimpa di kelas turunan, mendapatkan nilai yang menunjukkan apakah pengodean saat ini dapat digunakan oleh klien email dan berita untuk menyimpan konten.

(Diperoleh dari Encoding)
IsReadOnly

Ketika ditimpa di kelas turunan, mendapatkan nilai yang menunjukkan apakah pengodean saat ini bersifat baca-saja.

(Diperoleh dari Encoding)
IsSingleByte

Saat ditimpa di kelas turunan, mendapatkan nilai yang menunjukkan apakah pengodean saat ini menggunakan titik kode byte tunggal.

(Diperoleh dari Encoding)
Preamble

Mendapatkan tanda urutan byte Unicode yang dikodekan dalam format UTF-32, jika objek ini dikonfigurasi untuk menyediakannya.

Preamble

Saat ditimpa dalam kelas turunan, mengembalikan rentang yang berisi urutan byte yang menentukan pengodean yang digunakan.

(Diperoleh dari Encoding)
WebName

Ketika ditimpa di kelas turunan, nama terdaftar di Internet Assigned Numbers Authority (IANA) untuk pengodean saat ini.

(Diperoleh dari Encoding)
WindowsCodePage

Ketika ditimpa di kelas turunan, mendapatkan halaman kode sistem operasi Windows yang paling sesuai dengan pengodean saat ini.

(Diperoleh dari Encoding)

Metode

Clone()

Ketika ditimpa di kelas turunan, membuat salinan dangkal dari objek saat ini Encoding .

(Diperoleh dari Encoding)
Equals(Object)

Menentukan apakah yang ditentukan Object sama dengan objek saat ini UTF32Encoding .

GetByteCount(Char*, Int32)

Menghitung jumlah byte yang dihasilkan dengan mengodekan sekumpulan karakter yang dimulai pada penunjuk karakter yang ditentukan.

GetByteCount(Char[])

Saat ditimpa dalam kelas turunan, menghitung jumlah byte yang dihasilkan dengan mengodekan semua karakter dalam array karakter yang ditentukan.

(Diperoleh dari Encoding)
GetByteCount(Char[], Int32, Int32)

Menghitung jumlah byte yang dihasilkan dengan mengodekan sekumpulan karakter dari array karakter yang ditentukan.

GetByteCount(ReadOnlySpan<Char>)

Saat ditimpa dalam kelas turunan, menghitung jumlah byte yang dihasilkan dengan mengodekan karakter dalam rentang karakter yang ditentukan.

(Diperoleh dari Encoding)
GetByteCount(String)

Menghitung jumlah byte yang dihasilkan dengan mengodekan karakter dalam yang ditentukan String.

GetByteCount(String, Int32, Int32)

Saat ditimpa dalam kelas turunan, menghitung jumlah byte yang dihasilkan dengan mengodekan sekumpulan karakter dari string yang ditentukan.

(Diperoleh dari Encoding)
GetBytes(Char*, Int32, Byte*, Int32)

Mengodekan sekumpulan karakter yang dimulai pada penunjuk karakter yang ditentukan ke dalam urutan byte yang disimpan mulai dari penunjuk byte yang ditentukan.

GetBytes(Char[])

Saat ditimpa di kelas turunan, mengodekan semua karakter dalam array karakter yang ditentukan ke dalam urutan byte.

(Diperoleh dari Encoding)
GetBytes(Char[], Int32, Int32)

Saat ditimpa dalam kelas turunan, mengodekan sekumpulan karakter dari array karakter yang ditentukan ke dalam urutan byte.

(Diperoleh dari Encoding)
GetBytes(Char[], Int32, Int32, Byte[], Int32)

Mengodekan sekumpulan karakter dari array karakter yang ditentukan ke dalam array byte yang ditentukan.

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

Ketika ditimpa dalam kelas turunan, mengodekan ke dalam rentang byte sekumpulan karakter dari rentang baca-saja yang ditentukan.

(Diperoleh dari Encoding)
GetBytes(String)

Saat ditimpa dalam kelas turunan, mengodekan semua karakter dalam string yang ditentukan menjadi urutan byte.

(Diperoleh dari Encoding)
GetBytes(String, Int32, Int32)

Saat ditimpa dalam kelas turunan, mengodekan ke dalam array byte jumlah karakter yang ditentukan oleh count dalam string yang ditentukan, dimulai dari yang ditentukan index.

(Diperoleh dari Encoding)
GetBytes(String, Int32, Int32, Byte[], Int32)

Mengodekan sekumpulan karakter dari yang ditentukan String ke dalam array byte yang ditentukan.

GetCharCount(Byte*, Int32)

Menghitung jumlah karakter yang dihasilkan dengan mendekode urutan byte yang dimulai pada penunjuk byte yang ditentukan.

GetCharCount(Byte[])

Saat ditimpa dalam kelas turunan, menghitung jumlah karakter yang dihasilkan dengan mendekode semua byte dalam array byte yang ditentukan.

(Diperoleh dari Encoding)
GetCharCount(Byte[], Int32, Int32)

Menghitung jumlah karakter yang dihasilkan dengan mendekode urutan byte dari array byte yang ditentukan.

GetCharCount(ReadOnlySpan<Byte>)

Ketika ditimpa dalam kelas turunan, menghitung jumlah karakter yang dihasilkan dengan mendekode rentang byte baca-saja yang disediakan.

(Diperoleh dari Encoding)
GetChars(Byte*, Int32, Char*, Int32)

Mendekode urutan byte yang dimulai pada penunjuk byte yang ditentukan ke dalam sekumpulan karakter yang disimpan dimulai pada penunjuk karakter yang ditentukan.

GetChars(Byte[])

Saat ditimpa di kelas turunan, dekode semua byte dalam array byte yang ditentukan menjadi sekumpulan karakter.

(Diperoleh dari Encoding)
GetChars(Byte[], Int32, Int32)

Saat ditimpa dalam kelas turunan, dekode urutan byte dari array byte yang ditentukan menjadi sekumpulan karakter.

(Diperoleh dari Encoding)
GetChars(Byte[], Int32, Int32, Char[], Int32)

Mendekode urutan byte dari array byte yang ditentukan ke dalam array karakter yang ditentukan.

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

Saat ditimpa dalam kelas turunan, dekode semua byte dalam rentang byte baca-saja yang ditentukan menjadi rentang karakter.

(Diperoleh dari Encoding)
GetDecoder()

Mendapatkan dekoder yang mengonversi urutan byte yang dikodekan UTF-32 menjadi urutan karakter Unicode.

GetEncoder()

Mendapatkan encoder yang mengonversi urutan karakter Unicode menjadi urutan byte yang dikodekan UTF-32.

GetHashCode()

Mengembalikan kode hash untuk instans saat ini.

GetMaxByteCount(Int32)

Menghitung jumlah maksimum byte yang dihasilkan dengan mengodekan jumlah karakter yang ditentukan.

GetMaxCharCount(Int32)

Menghitung jumlah maksimum karakter yang dihasilkan dengan mendekode jumlah byte yang ditentukan.

GetPreamble()

Mengembalikan tanda urutan byte Unicode yang dikodekan dalam format UTF-32, jika objek dikonfigurasi UTF32Encoding untuk menyediakannya.

GetString(Byte*, Int32)

Saat ditimpa di kelas turunan, dekode jumlah byte tertentu yang dimulai pada alamat tertentu menjadi string.

(Diperoleh dari Encoding)
GetString(Byte[])

Saat ditimpa dalam kelas turunan, dekode semua byte dalam array byte yang ditentukan menjadi string.

(Diperoleh dari Encoding)
GetString(Byte[], Int32, Int32)

Mendekode rentang byte dari array byte menjadi string.

GetString(ReadOnlySpan<Byte>)

Saat ditimpa dalam kelas turunan, dekode semua byte dalam rentang byte yang ditentukan ke dalam string.

(Diperoleh dari Encoding)
GetType()

Mendapatkan dari instans Type saat ini.

(Diperoleh dari Object)
IsAlwaysNormalized()

Mendapatkan nilai yang menunjukkan apakah pengodean saat ini selalu dinormalisasi, menggunakan formulir normalisasi default.

(Diperoleh dari Encoding)
IsAlwaysNormalized(NormalizationForm)

Ketika ditimpa di kelas turunan, mendapatkan nilai yang menunjukkan apakah pengodean saat ini selalu dinormalisasi, menggunakan formulir normalisasi yang ditentukan.

(Diperoleh dari Encoding)
MemberwiseClone()

Membuat salinan dangkal dari saat ini Object.

(Diperoleh dari Object)
ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)
TryGetBytes(ReadOnlySpan<Char>, Span<Byte>, Int32)

Mengodekan ke dalam rentang byte sekumpulan karakter dari rentang baca-saja yang ditentukan jika tujuannya cukup besar.

(Diperoleh dari Encoding)
TryGetChars(ReadOnlySpan<Byte>, Span<Char>, Int32)

Mendekode ke dalam rentang karakter sekumpulan byte dari rentang baca-saja yang ditentukan jika tujuannya cukup besar.

(Diperoleh dari Encoding)

Metode Ekstensi

GetBytes(Encoding, ReadOnlySequence<Char>)

Mengodekan yang ditentukan ReadOnlySequence<T> ke dalam Byte array menggunakan yang ditentukan Encoding.

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

Mendekode yang ditentukan ReadOnlySequence<T> ke bytes menggunakan yang ditentukan Encoding dan menulis hasilnya ke writer.

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

Mengodekan yang ditentukan ReadOnlySequence<T> ke bytes menggunakan yang ditentukan Encoding dan menghasilkan hasilnya ke bytes.

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

Mengodekan yang ditentukan ReadOnlySpan<T> ke bytes menggunakan yang ditentukan Encoding dan menulis hasilnya ke writer.

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

Mendekode yang ditentukan ReadOnlySequence<T> ke chars menggunakan yang ditentukan Encoding dan menulis hasilnya ke writer.

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

Mendekode yang ditentukan ReadOnlySequence<T> ke chars menggunakan yang ditentukan Encoding dan menghasilkan hasilnya ke chars.

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

Mendekode yang ditentukan ReadOnlySpan<T> ke chars menggunakan yang ditentukan Encoding dan menulis hasilnya ke writer.

GetString(Encoding, ReadOnlySequence<Byte>)

Mendekode yang ditentukan ReadOnlySequence<T> ke dalam String menggunakan yang ditentukan Encoding.

Berlaku untuk

Lihat juga