Udostępnij za pośrednictwem


UTF32Encoding Klasa

Definicja

Reprezentuje kodowanie UTF-32 znaków 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
Dziedziczenie
UTF32Encoding
Atrybuty

Przykłady

W poniższym przykładzie pokazano zachowanie UTF32Encoding obiektów z włączonym wykrywaniem błędów i bez ich wykrywania. Tworzy tablicę bajtów, której ostatnie cztery bajty reprezentują nieprawidłową parę zastępczą; wysoki zastępca U+D8FF następuje U+01FF, który znajduje się poza zakresem niskich zastępców (0xDC00 przez 0xDFFF). Bez wykrywania błędów dekoder UTF32 używa rezerwowego zastępczego, aby zastąpić nieprawidłową parę zastępczą znakiem ZASTĘPCZYm (U+FFFD).

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ăǽβ�

Poniższy przykład koduje ciąg znaków Unicode do tablicy bajtów przy użyciu UTF32Encoding obiektu. Tablica bajtów jest następnie dekodowana do ciągu, aby zademonstrować, że nie ma utraty danych.

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

W poniższym przykładzie użyto tego samego ciągu co poprzedni, z tą różnicą, że zapisuje zakodowane bajty w pliku i prefiksuje strumień bajtów ze znacznikiem kolejności bajtów (BOM). Następnie odczytuje plik na dwa różne sposoby: jako plik tekstowy przy użyciu StreamReader obiektu i jako plik binarny. Jak można się spodziewać, żaden z nowo odczytanych ciągów nie zawiera modelu 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 (Σ).

Uwagi

Kodowanie to proces przekształcania zestawu znaków Unicode w sekwencję bajtów. Dekodowanie to proces przekształcania sekwencji zakodowanych bajtów w zestaw znaków Unicode.

Standard Unicode przypisuje punkt kodu (liczbę) do każdego znaku w każdym obsługiwanym skrypce. Format transformacji Unicode (UTF) to sposób kodowania tego punktu kodu. Standard Unicode używa następujących kodów UTFs:

  • UTF-8, który reprezentuje każdy punkt kodu jako sekwencję od jednego do czterech bajtów.

  • UTF-16, który reprezentuje każdy punkt kodu jako sekwencję od jednej do dwóch 16-bitowych liczb całkowitych.

  • UTF-32, który reprezentuje każdy punkt kodu jako 32-bitową liczbę całkowitą.

Aby uzyskać więcej informacji na temat funkcji UTFs i innych kodowań obsługiwanych przez System.Textprogram , zobacz Kodowanie znaków na platformie .NET.

Klasa UTF32Encoding reprezentuje kodowanie UTF-32. Koder może używać kolejności bajtów big endian (najwięcej znaczących bajtów pierwszy) lub małej kolejności bajtów endian (najmniej znaczący bajt pierwszy). Na przykład wielka litera A (punkt kodu U+0041) jest serializowany w następujący sposób (w szesnastkowym):

  • Kolejność bajtów big endian: 00 00 00 41

  • Mała kolejność bajtów endian: 41 00 00 00

Ogólnie bardziej wydajne jest przechowywanie znaków Unicode przy użyciu natywnej kolejności bajtów. Na przykład lepiej użyć małej kolejności bajtów endian na małych platformach endian, takich jak komputery Intel. UTF32Encoding odpowiada stronom kodu systemu Windows 12000 (mała kolejność bajtów endian) i 12001 (kolejność bajtów big endian). Można określić "endianness" określonej architektury, wywołując metodę BitConverter.IsLittleEndian .

UTF32Encoding Opcjonalnie obiekt udostępnia znak kolejności bajtów (BOM), który jest tablicą bajtów, które mogą być poprzedzone sekwencją bajtów wynikających z procesu kodowania. Jeśli preambuła zawiera znak kolejności bajtów (BOM), pomaga on określić kolejność bajtów i format przekształcenia lub UTF tablicy bajtów.

UTF32Encoding Jeśli wystąpienie jest skonfigurowane do udostępniania modelu BOM, można go pobrać, wywołując GetPreamble metodę . W przeciwnym razie metoda zwraca pustą tablicę. Należy pamiętać, że nawet jeśli UTF32Encoding obiekt jest skonfigurowany do obsługi BOM, należy uwzględnić obiekt BOM na początku zakodowanego strumienia bajtów zgodnie z potrzebami; metody UTF32Encoding kodowania klasy nie wykonują tego automatycznie.

Caution

Aby włączyć wykrywanie błędów i zwiększyć bezpieczeństwo wystąpienia klasy, należy utworzyć wystąpienie UTF32Encoding obiektu przez wywołanie konstruktora i ustawienie jego throwOnInvalidBytes argumentu UTF32Encoding(Boolean, Boolean, Boolean) na true. W przypadku wykrywania błędów metoda, która wykrywa nieprawidłową sekwencję znaków lub bajtów, zgłasza ArgumentException wyjątek. Bez wykrywania błędów nie jest zgłaszany żaden wyjątek, a nieprawidłowa sekwencja jest zwykle ignorowana.

Możesz utworzyć wystąpienie UTF32Encoding obiektu na wiele sposobów, w zależności od tego, czy chcesz podać znak kolejności bajtów (BOM), niezależnie od tego, czy chcesz kodować big-endian, czy little-endian oraz czy chcesz włączyć wykrywanie błędów. W poniższej tabeli wymieniono UTF32Encoding konstruktory i Encoding właściwości zwracające UnicodeEncoding obiekt.

Członek Kolejność bajtów lista BOM Wykrywanie błędów
Encoding.UTF32 Little-endian Yes Nie (rezerwowa zamiana)
UTF32Encoding.UTF32Encoding() Little-endian Yes Nie (rezerwowa zamiana)
UTF32Encoding.UTF32Encoding(Boolean, Boolean) Konfigurowalny Konfigurowalny Nie (rezerwowa zamiana)
UTF32Encoding.UTF32Encoding(Boolean, Boolean, Boolean) Konfigurowalny Konfigurowalny Konfigurowalny

Metoda GetByteCount określa, ile bajtów powoduje kodowanie zestawu znaków Unicode, a GetBytes metoda wykonuje rzeczywiste kodowanie.

Podobnie metoda określa, GetCharCount ile znaków powoduje dekodowanie sekwencji bajtów, a GetChars metody i GetString wykonują rzeczywiste dekodowanie.

W przypadku kodera lub dekodera, który może zapisywać informacje o stanie podczas kodowania lub dekodowania danych obejmujących wiele bloków (takich jak ciąg o długości 1 miliona znaków zakodowanych w segmentach 100 000 znaków), użyj GetEncoder odpowiednio właściwości i GetDecoder .

Konstruktory

Nazwa Opis
UTF32Encoding()

Inicjuje nowe wystąpienie klasy UTF32Encoding.

UTF32Encoding(Boolean, Boolean, Boolean)

Inicjuje nowe wystąpienie klasy UTF32Encoding. Parametry określają, czy należy użyć kolejności bajtów big endian, czy podać znak kolejności bajtów Unicode i czy zgłosić wyjątek w przypadku wykrycia nieprawidłowego kodowania.

UTF32Encoding(Boolean, Boolean)

Inicjuje nowe wystąpienie klasy UTF32Encoding. Parametry określają, czy należy użyć kolejności bajtów big endian i czy GetPreamble() metoda zwraca znak kolejności bajtów Unicode.

Właściwości

Nazwa Opis
BodyName

Po zastąpieniu w klasie pochodnej pobiera nazwę bieżącego kodowania, które może być używane z tagami treści agenta poczty.

(Odziedziczone po Encoding)
CodePage

Po przesłonięciu w klasie pochodnej pobiera identyfikator strony kodowej bieżącego Encodingelementu .

(Odziedziczone po Encoding)
DecoderFallback

Pobiera lub ustawia DecoderFallback obiekt dla bieżącego Encoding obiektu.

(Odziedziczone po Encoding)
EncoderFallback

Pobiera lub ustawia EncoderFallback obiekt dla bieżącego Encoding obiektu.

(Odziedziczone po Encoding)
EncodingName

Po zastąpieniu w klasie pochodnej pobiera czytelny dla człowieka opis bieżącego kodowania.

(Odziedziczone po Encoding)
HeaderName

Po zastąpieniu w klasie pochodnej pobiera nazwę bieżącego kodowania, którego można używać z tagami nagłówka agenta poczty.

(Odziedziczone po Encoding)
IsBrowserDisplay

Po zastąpieniu w klasie pochodnej pobiera wartość wskazującą, czy bieżące kodowanie może być używane przez klientów przeglądarki do wyświetlania zawartości.

(Odziedziczone po Encoding)
IsBrowserSave

Po zastąpieniu w klasie pochodnej pobiera wartość wskazującą, czy bieżące kodowanie może być używane przez klientów przeglądarki do zapisywania zawartości.

(Odziedziczone po Encoding)
IsMailNewsDisplay

Po zastąpieniu w klasie pochodnej pobiera wartość wskazującą, czy bieżące kodowanie może być używane przez klientów poczty i wiadomości do wyświetlania zawartości.

(Odziedziczone po Encoding)
IsMailNewsSave

Po zastąpieniu w klasie pochodnej pobiera wartość wskazującą, czy bieżące kodowanie może być używane przez klientów poczty i wiadomości do zapisywania zawartości.

(Odziedziczone po Encoding)
IsReadOnly

Po zastąpieniu w klasie pochodnej pobiera wartość wskazującą, czy bieżące kodowanie jest tylko do odczytu.

(Odziedziczone po Encoding)
IsSingleByte

Po przesłonięciu w klasie pochodnej pobiera wartość wskazującą, czy bieżące kodowanie używa punktów kodu jedno bajtów.

(Odziedziczone po Encoding)
Preamble

Pobiera znacznik kolejności bajtów Unicode zakodowany w formacie UTF-32, jeśli ten obiekt jest skonfigurowany do podawania.

Preamble

Po zastąpieniu w klasie pochodnej zwraca zakres zawierający sekwencję bajtów, która określa używane kodowanie.

(Odziedziczone po Encoding)
WebName

Po zastąpieniu w klasie pochodnej pobiera nazwę zarejestrowaną w urzędzie IANA (Internet Assigned Numbers Authority) dla bieżącego kodowania.

(Odziedziczone po Encoding)
WindowsCodePage

Po zastąpieniu w klasie pochodnej pobiera stronę kodową systemu operacyjnego Windows, która najbardziej odpowiada bieżącemu kodowaniu.

(Odziedziczone po Encoding)

Metody

Nazwa Opis
Clone()

Po zastąpieniu w klasie pochodnej tworzy płytkią kopię bieżącego Encoding obiektu.

(Odziedziczone po Encoding)
Equals(Object)

Określa, czy określony Object jest równy bieżącemu UTF32Encoding obiektowi.

GetByteCount(Char[], Int32, Int32)

Oblicza liczbę bajtów generowanych przez kodowanie zestawu znaków z określonej tablicy znaków.

GetByteCount(Char[])

Po zastąpieniu w klasie pochodnej oblicza liczbę bajtów generowanych przez kodowanie wszystkich znaków w określonej tablicy znaków.

(Odziedziczone po Encoding)
GetByteCount(Char*, Int32)

Oblicza liczbę bajtów generowanych przez kodowanie zestawu znaków rozpoczynających się od określonego wskaźnika znaków.

GetByteCount(ReadOnlySpan<Char>)

Po zastąpieniu w klasie pochodnej oblicza liczbę bajtów generowanych przez kodowanie znaków w określonym zakresie znaków.

(Odziedziczone po Encoding)
GetByteCount(String, Int32, Int32)

Po zastąpieniu w klasie pochodnej oblicza liczbę bajtów generowanych przez kodowanie zestawu znaków z określonego ciągu.

(Odziedziczone po Encoding)
GetByteCount(String)

Oblicza liczbę bajtów generowanych przez kodowanie znaków w określonym Stringobiekcie .

GetBytes(Char[], Int32, Int32, Byte[], Int32)

Koduje zestaw znaków z określonej tablicy znaków do określonej tablicy bajtów.

GetBytes(Char[], Int32, Int32)

Po zastąpieniu w klasie pochodnej koduje zestaw znaków z określonej tablicy znaków do sekwencji bajtów.

(Odziedziczone po Encoding)
GetBytes(Char[])

Po zastąpieniu w klasie pochodnej koduje wszystkie znaki w określonej tablicy znaków w sekwencji bajtów.

(Odziedziczone po Encoding)
GetBytes(Char*, Int32, Byte*, Int32)

Koduje zestaw znaków rozpoczynający się od określonego wskaźnika znaku do sekwencji bajtów przechowywanych od określonego wskaźnika bajtów.

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

Po przesłonięciu w klasie pochodnej koduje do zakresu bajtów zestaw znaków z określonego zakresu tylko do odczytu.

(Odziedziczone po Encoding)
GetBytes(String, Int32, Int32, Byte[], Int32)

Koduje zestaw znaków z określonej String tablicy bajtów.

GetBytes(String, Int32, Int32)

Po przesłonięciu w klasie pochodnej koduje do tablicy bajtów liczbę znaków określonych count w określonym ciągu, począwszy od określonego indexciągu .

(Odziedziczone po Encoding)
GetBytes(String)

Po zastąpieniu w klasie pochodnej koduje wszystkie znaki w określonym ciągu w sekwencji bajtów.

(Odziedziczone po Encoding)
GetCharCount(Byte[], Int32, Int32)

Oblicza liczbę znaków generowanych przez dekodowanie sekwencji bajtów z określonej tablicy bajtów.

GetCharCount(Byte[])

Po zastąpieniu w klasie pochodnej oblicza liczbę znaków generowanych przez dekodowanie wszystkich bajtów w określonej tablicy bajtów.

(Odziedziczone po Encoding)
GetCharCount(Byte*, Int32)

Oblicza liczbę znaków generowanych przez dekodowanie sekwencji bajtów rozpoczynających się od określonego wskaźnika bajtów.

GetCharCount(ReadOnlySpan<Byte>)

Po zastąpieniu w klasie pochodnej oblicza liczbę znaków generowanych przez dekodowanie podanego zakresu bajtów tylko do odczytu.

(Odziedziczone po Encoding)
GetChars(Byte[], Int32, Int32, Char[], Int32)

Dekoduje sekwencję bajtów z określonej tablicy bajtów do określonej tablicy znaków.

GetChars(Byte[], Int32, Int32)

Po zastąpieniu w klasie pochodnej dekoduje sekwencję bajtów z określonej tablicy bajtów do zestawu znaków.

(Odziedziczone po Encoding)
GetChars(Byte[])

Po zastąpieniu w klasie pochodnej dekoduje wszystkie bajty w określonej tablicy bajtów do zestawu znaków.

(Odziedziczone po Encoding)
GetChars(Byte*, Int32, Char*, Int32)

Dekoduje sekwencję bajtów rozpoczynającą się od określonego wskaźnika bajtów do zestawu znaków, które są przechowywane począwszy od określonego wskaźnika znaków.

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

Po przesłonięciu w klasie pochodnej wszystkie bajty w określonym bajtach tylko do odczytu obejmują zakres znaków.

(Odziedziczone po Encoding)
GetDecoder()

Uzyskuje dekoder, który konwertuje kodowaną sekwencję bajtów UTF-32 na sekwencję znaków Unicode.

GetEncoder()

Uzyskuje koder, który konwertuje sekwencję znaków Unicode na kodowaną sekwencję bajtów UTF-32.

GetHashCode()

Zwraca kod skrótu dla bieżącego wystąpienia.

GetMaxByteCount(Int32)

Oblicza maksymalną liczbę bajtów generowanych przez kodowanie określonej liczby znaków.

GetMaxCharCount(Int32)

Oblicza maksymalną liczbę znaków generowanych przez dekodowanie określonej liczby bajtów.

GetPreamble()

Zwraca znacznik kolejności bajtów Unicode zakodowany w formacie UTF-32, jeśli UTF32Encoding obiekt jest skonfigurowany do podawania.

GetString(Byte[], Int32, Int32)

Dekoduje zakres bajtów z tablicy bajtów do ciągu.

GetString(Byte[])

Po zastąpieniu w klasie pochodnej dekoduje wszystkie bajty w określonej tablicy bajtów do ciągu.

(Odziedziczone po Encoding)
GetString(Byte*, Int32)

Po zastąpieniu w klasie pochodnej dekoduje określoną liczbę bajtów rozpoczynających się od określonego adresu do ciągu.

(Odziedziczone po Encoding)
GetString(ReadOnlySpan<Byte>)

Po zastąpieniu w klasie pochodnej dekoduje wszystkie bajty w określonym zakresie bajtów w ciągu.

(Odziedziczone po Encoding)
GetType()

Pobiera Type bieżącego wystąpienia.

(Odziedziczone po Object)
IsAlwaysNormalized()

Pobiera wartość wskazującą, czy bieżące kodowanie jest zawsze znormalizowane przy użyciu domyślnego formularza normalizacji.

(Odziedziczone po Encoding)
IsAlwaysNormalized(NormalizationForm)

Po zastąpieniu w klasie pochodnej pobiera wartość wskazującą, czy bieżące kodowanie jest zawsze znormalizowane przy użyciu określonej formy normalizacji.

(Odziedziczone po Encoding)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Object.

(Odziedziczone po Object)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)
TryGetBytes(ReadOnlySpan<Char>, Span<Byte>, Int32)

Koduje do zakresu bajtów zestaw znaków z określonego zakresu tylko do odczytu, jeśli miejsce docelowe jest wystarczająco duże.

(Odziedziczone po Encoding)
TryGetChars(ReadOnlySpan<Byte>, Span<Char>, Int32)

Dekoduje do zakresu znaków zestaw bajtów z określonego zakresu tylko do odczytu, jeśli miejsce docelowe jest wystarczająco duże.

(Odziedziczone po Encoding)

Metody rozszerzania

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

Dekoduje określony ReadOnlySequence<T> parametr do bytes przy użyciu określonego Encoding elementu i zapisuje wynik na writer.

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

Koduje określony ReadOnlySequence<T> parametr do bytes przy użyciu określonego Encoding elementu i zwraca wynik do bytes.

GetBytes(Encoding, ReadOnlySequence<Char>)

Koduje określony ReadOnlySequence<T> element do Byte tablicy przy użyciu określonego Encodingelementu .

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

Koduje określony ReadOnlySpan<T> parametr do bytes przy użyciu określonego Encoding elementu i zapisuje wynik na writer.

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

Dekoduje określony ReadOnlySequence<T> parametr do chars przy użyciu określonego Encoding elementu i zapisuje wynik na writer.

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

Dekoduje określony ReadOnlySequence<T> parametr do chars przy użyciu określonego Encoding elementu i zwraca wynik na charswartość .

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

Dekoduje określony ReadOnlySpan<T> parametr do chars przy użyciu określonego Encoding elementu i zapisuje wynik na writer.

GetString(Encoding, ReadOnlySequence<Byte>)

Dekoduje określony ReadOnlySequence<T> element do String elementu przy użyciu określonego Encodingelementu .

Dotyczy

Zobacz też