Aracılığıyla paylaş


UTF32Encoding Sınıf

Tanım

Unicode karakterlerin UTF-32 kodlamalarını temsil eder.

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
Devralma
UTF32Encoding
Öznitelikler

Örnekler

Aşağıdaki örnekte, hata algılama etkin ve etkin olmayan nesnelerin davranışı UTF32Encoding gösterilmektedir. Son dört bayt geçersiz bir vekil çifti temsil eden bir bayt dizisi oluşturur; yüksek vekil U+D8FF'yi takip eden U+01FF, düşük vekillerin (0xDFFF 0xDC00) aralığının dışındadır. Hata algılama olmadan UTF32 kod çözücüsü geçersiz vekil çifti DEĞİşTİrME KARAKTERİ (U+FFFD) ile değiştirmek için değiştirme geri dönüşünü kullanır.

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

Aşağıdaki örnek, bir unicode karakter dizesini bir UTF32Encoding nesne kullanarak bayt dizisine kodlar. Bayt dizisi daha sonra veri kaybı olmadığını göstermek için bir dize olarak çözülecek.

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

Aşağıdaki örnek, kodlanmış baytları bir dosyaya yazması ve bayt akışına bayt sırası işareti (BOM) öneki eklemesi dışında, öncekiyle aynı dizeyi kullanır. Ardından dosyayı iki farklı şekilde okur: bir nesne kullanarak StreamReader metin dosyası olarak ve ikili dosya olarak. Beklediğiniz gibi, yeni okunan dizelerin hiçbiri BOM'u içermez.

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

Açıklamalar

Kodlama, bir Unicode karakter kümesini bayt dizisine dönüştürme işlemidir. Kod çözme, kodlanmış bayt dizisini unicode karakter kümesine dönüştürme işlemidir.

Unicode Standardı, desteklenen her betikteki her karaktere bir kod noktası (sayı) atar. Unicode Dönüştürme Biçimi (UTF), bu kod noktasını kodlamanın bir yoludur. Unicode Standardı aşağıdaki UTF'leri kullanır:

  • UtF-8, her kod noktasını bir ile dört baytlık bir dizi olarak temsil eder.

  • UtF-16, her bir kod noktasını bir ile iki 16 bit tamsayı dizisi olarak temsil eder.

  • Her kod noktasını 32 bit tamsayı olarak temsil eden UTF-32.

UTF'ler ve tarafından System.Textdesteklenen diğer kodlamalar hakkında daha fazla bilgi için bkz. .NET'te Karakter Kodlama.

UTF32Encoding sınıfı UTF-32 kodlamasını temsil eder. Kodlayıcı büyük endian bayt sırasını (önce en önemli bayt) veya küçük endian bayt sırasını (önce en az önemli bayt) kullanabilir. Örneğin, Latin Büyük A Harfi (kod noktası U+0041) aşağıdaki gibi serileştirilir (onaltılık olarak):

  • Büyük endian bayt siparişi: 00 00 00 41

  • Küçük endian bayt siparişi: 41 00 00 00

Unicode karakterleri yerel bayt sırasını kullanarak depolamak genellikle daha verimlidir. Örneğin, Intel bilgisayarlar gibi küçük endian platformlarında küçük endian bayt sırasını kullanmak daha iyidir. UTF32Encoding 12000 (küçük endian bayt sırası) ve 12001 (büyük endian bayt sırası) Windows kod sayfalarına karşılık gelir. yöntemini çağırarak BitConverter.IsLittleEndian belirli bir mimarinin "bitişini" belirleyebilirsiniz.

İsteğe bağlı olarak, nesnesi, kodlama işleminden UTF32Encoding kaynaklanan bayt dizisine ön ek olarak eklenebilen bayt dizisi olan bir bayt sırası işareti (BOM) sağlar. Ön cihaz bir bayt sırası işareti (BOM) içeriyorsa, kod çözücüye bayt sırasını ve bir bayt dizisinin dönüşüm biçimini veya UTF'sini belirlemesine yardımcı olur.

UTF32Encoding Örnek bir ürün reçetesi sağlayacak şekilde yapılandırılmışsa yöntemini çağırarak GetPreamble bunu alabilirsiniz; aksi takdirde yöntem boş bir dizi döndürür. Bir UTF32Encoding nesne BOM desteği için yapılandırılmış olsa bile kodlanmış bayt akışının başına uygun şekilde BOM'u eklemeniz gerektiğini unutmayın; sınıfın UTF32Encoding kodlama yöntemleri bunu otomatik olarak yapmaz.

Dikkat

Hata algılamayı etkinleştirmek ve sınıf örneğini daha güvenli hale getirmek için oluşturucuyu çağırıp bağımsız değişkenini throwOnInvalidBytestrueolarak ayarlayarak bir UTF32Encoding nesne örneği UTF32Encoding(Boolean, Boolean, Boolean) oluşturmanız gerekir. Hata algılama ile geçersiz bir karakter veya bayt dizisi algılayan bir yöntem özel ArgumentException durum oluşturur. Hata algılama olmadan özel durum oluşmaz ve geçersiz dizi genellikle yoksayılır.

Bayt sipariş işareti (BOM) sağlamak isteyip istemediğinize, big-endian veya little-endian kodlaması isteyip istemediğinize ve hata algılamayı etkinleştirmek isteyip istemediğinize bağlı olarak, bir UTF32Encoding nesnenin örneğini çeşitli yollarla oluşturabilirsiniz. Aşağıdaki tabloda oluşturucular UTF32Encoding ve Encoding nesne UnicodeEncoding döndüren özellikler listelenir.

Üye Endianness Ürün reçetesi Hata algılama
Encoding.UTF32 Küçük endian Yes Hayır (Yedek geri dönüş)
UTF32Encoding.UTF32Encoding() Küçük endian Yes Hayır (Yedek geri dönüş)
UTF32Encoding.UTF32Encoding(Boolean, Boolean) Yapılandırılabilir Yapılandırılabilir Hayır (Yedek geri dönüş)
UTF32Encoding.UTF32Encoding(Boolean, Boolean, Boolean) Yapılandırılabilir Yapılandırılabilir Yapılandırılabilir

GetByteCount yöntemi, bir Unicode karakter kümesini kodlamanın kaç baytla sonuçlandığını GetBytes belirler ve yöntem gerçek kodlamayı gerçekleştirir.

Benzer şekilde yöntemi, GetCharCount bayt dizisinin kodunun çözülmesiyle sonuçlanan karakter sayısını belirler ve GetChars ve GetString yöntemleri gerçek kod çözme işlemini gerçekleştirir.

Birden çok blokta (100.000 karakterlik segmentlerde kodlanmış 1 milyon karakterlik dize gibi) verileri kodlarken veya kod çözerken durum bilgilerini kaydedebilen kodlayıcı veya kod çözücü için sırasıyla ve GetDecoder özelliklerini kullanınGetEncoder.

Oluşturucular

UTF32Encoding()

UTF32Encoding sınıfının yeni bir örneğini başlatır.

UTF32Encoding(Boolean, Boolean)

UTF32Encoding sınıfının yeni bir örneğini başlatır. Parametreler, büyük endian bayt sırasının kullanılıp kullanılmayacağını ve yöntemin GetPreamble() Unicode bayt sırası işareti döndürip döndürmediğini belirtir.

UTF32Encoding(Boolean, Boolean, Boolean)

UTF32Encoding sınıfının yeni bir örneğini başlatır. Parametreler büyük endian bayt sırasının kullanılıp kullanılmayacağını, Unicode bayt sırası işaretinin sağlanıp sağlanmayacağını ve geçersiz kodlama algılandığında özel durum oluşturulup oluşturulmayacağını belirtir.

Özellikler

BodyName

Türetilmiş bir sınıfta geçersiz kılındığında, posta aracısı gövde etiketleriyle kullanılabilen geçerli kodlama için bir ad alır.

(Devralındığı yer: Encoding)
CodePage

Türetilmiş bir sınıfta geçersiz kılındığında, geçerli Encodingöğesinin kod sayfası tanımlayıcısını alır.

(Devralındığı yer: Encoding)
DecoderFallback

Geçerli Encoding nesnenin DecoderFallback nesnesini alır veya ayarlar.

(Devralındığı yer: Encoding)
EncoderFallback

Geçerli Encoding nesnenin EncoderFallback nesnesini alır veya ayarlar.

(Devralındığı yer: Encoding)
EncodingName

Türetilmiş bir sınıfta geçersiz kılındığında, geçerli kodlamanın insan tarafından okunabilir açıklamasını alır.

(Devralındığı yer: Encoding)
HeaderName

Türetilmiş bir sınıfta geçersiz kılındığında, posta aracısı üst bilgi etiketleriyle kullanılabilen geçerli kodlama için bir ad alır.

(Devralındığı yer: Encoding)
IsBrowserDisplay

Türetilmiş bir sınıfta geçersiz kılındığında, geçerli kodlamanın içeriği görüntülemek için tarayıcı istemcileri tarafından kullanılıp kullanılamayacağını belirten bir değer alır.

(Devralındığı yer: Encoding)
IsBrowserSave

Türetilmiş bir sınıfta geçersiz kılındığında, geçerli kodlamanın içeriği kaydetmek için tarayıcı istemcileri tarafından kullanılıp kullanılamayacağını belirten bir değer alır.

(Devralındığı yer: Encoding)
IsMailNewsDisplay

Türetilmiş bir sınıfta geçersiz kılındığında, geçerli kodlamanın posta ve haber istemcileri tarafından içerik görüntülemek için kullanılıp kullanılamayacağını belirten bir değer alır.

(Devralındığı yer: Encoding)
IsMailNewsSave

Türetilmiş bir sınıfta geçersiz kılındığında, geçerli kodlamanın içeriği kaydetmek için posta ve haber istemcileri tarafından kullanılıp kullanılamayacağını belirten bir değer alır.

(Devralındığı yer: Encoding)
IsReadOnly

Türetilmiş bir sınıfta geçersiz kılındığında, geçerli kodlamanın salt okunur olup olmadığını belirten bir değer alır.

(Devralındığı yer: Encoding)
IsSingleByte

Türetilmiş bir sınıfta geçersiz kılındığında, geçerli kodlamanın tek bayt kod noktaları kullanıp kullanmadığını belirten bir değer alır.

(Devralındığı yer: Encoding)
Preamble

Bu nesne bir tane sağlamak üzere yapılandırılmışsa UTF-32 biçiminde kodlanmış bir Unicode bayt sırası işareti alır.

Preamble

Türetilmiş bir sınıfta geçersiz kılındığında, kullanılan kodlamayı belirten bayt dizisini içeren bir span döndürür.

(Devralındığı yer: Encoding)
WebName

Türetilmiş bir sınıfta geçersiz kılındığında, geçerli kodlama için İnternet Atanmış Numaralar Yetkilisi'ne (IANA) kaydedilen adı alır.

(Devralındığı yer: Encoding)
WindowsCodePage

Türetilmiş bir sınıfta geçersiz kılındığında, geçerli kodlamaya en yakın olan Windows işletim sistemi kod sayfasını alır.

(Devralındığı yer: Encoding)

Yöntemler

Clone()

Türetilmiş bir sınıfta geçersiz kılındığında, geçerli Encoding nesnenin sığ bir kopyasını oluşturur.

(Devralındığı yer: Encoding)
Equals(Object)

Belirtilen Object öğesinin geçerli UTF32Encoding nesneye eşit olup olmadığını belirler.

GetByteCount(Char*, Int32)

Belirtilen karakter işaretçisinde başlayan bir karakter kümesini kodlayarak üretilen bayt sayısını hesaplar.

GetByteCount(Char[])

Türetilmiş bir sınıfta geçersiz kılındığında, belirtilen karakter dizisindeki tüm karakterleri kodlayarak üretilen bayt sayısını hesaplar.

(Devralındığı yer: Encoding)
GetByteCount(Char[], Int32, Int32)

Belirtilen karakter dizisinden bir karakter kümesi kodlayarak üretilen bayt sayısını hesaplar.

GetByteCount(ReadOnlySpan<Char>)

Türetilmiş bir sınıfta geçersiz kılındığında, belirtilen karakter aralığındaki karakterleri kodlayarak üretilen bayt sayısını hesaplar.

(Devralındığı yer: Encoding)
GetByteCount(String)

Belirtilen Stringiçindeki karakterleri kodlayarak üretilen bayt sayısını hesaplar.

GetByteCount(String, Int32, Int32)

Türetilmiş bir sınıfta geçersiz kılındığında, belirtilen dizeden bir karakter kümesi kodlayarak üretilen bayt sayısını hesaplar.

(Devralındığı yer: Encoding)
GetBytes(Char*, Int32, Byte*, Int32)

Belirtilen karakter işaretçisinde başlayan bir karakter kümesini, belirtilen bayt işaretçisinde başlayan bir bayt dizisine kodlar.

GetBytes(Char[])

Türetilmiş bir sınıfta geçersiz kılındığında, belirtilen karakter dizisindeki tüm karakterleri bayt dizisine kodlar.

(Devralındığı yer: Encoding)
GetBytes(Char[], Int32, Int32)

Türetilmiş bir sınıfta geçersiz kılındığında, belirtilen karakter dizisindeki bir karakter kümesini bayt dizisine kodlar.

(Devralındığı yer: Encoding)
GetBytes(Char[], Int32, Int32, Byte[], Int32)

Belirtilen karakter dizisinden bir dizi karakteri belirtilen bayt dizisine kodlar.

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

Türetilmiş bir sınıfta geçersiz kılındığında, belirtilen salt okunur yayılma alanından bir karakter kümesi bayt aralığına kodlar.

(Devralındığı yer: Encoding)
GetBytes(String)

Türetilmiş bir sınıfta geçersiz kılındığında, belirtilen dizedeki tüm karakterleri bir bayt dizisine kodlar.

(Devralındığı yer: Encoding)
GetBytes(String, Int32, Int32)

Türetilmiş bir sınıfta geçersiz kılındığında, belirtilen dizede tarafından count belirtilen karakter sayısını belirtilenden başlayarak bayt dizisine indexkodlar.

(Devralındığı yer: Encoding)
GetBytes(String, Int32, Int32, Byte[], Int32)

Belirtilenden bir karakter kümesini belirtilen String bayt dizisine kodlar.

GetCharCount(Byte*, Int32)

Belirtilen bayt işaretçisinde başlayan bir bayt dizisinin kodunu çözerek üretilen karakter sayısını hesaplar.

GetCharCount(Byte[])

Türetilmiş bir sınıfta geçersiz kılındığında, belirtilen bayt dizisindeki tüm baytların kodunu çözerek üretilen karakter sayısını hesaplar.

(Devralındığı yer: Encoding)
GetCharCount(Byte[], Int32, Int32)

Belirtilen bayt dizisinden bir bayt dizisinin kodunu çözerek üretilen karakter sayısını hesaplar.

GetCharCount(ReadOnlySpan<Byte>)

Türetilmiş bir sınıfta geçersiz kılındığında, sağlanan salt okunur bayt aralığının kodunu çözerek üretilen karakter sayısını hesaplar.

(Devralındığı yer: Encoding)
GetChars(Byte*, Int32, Char*, Int32)

Belirtilen bayt işaretçisinde başlayan bayt dizisinin kodunu, belirtilen karakter işaretçisinde başlayan bir dizi karaktere dönüştürür.

GetChars(Byte[])

Türetilmiş bir sınıfta geçersiz kılındığında, belirtilen bayt dizisindeki tüm baytların kodunu bir karakter kümesine çözer.

(Devralındığı yer: Encoding)
GetChars(Byte[], Int32, Int32)

Türetilmiş bir sınıfta geçersiz kılındığında, belirtilen bayt dizisindeki bayt dizisinin kodunu bir karakter kümesine çözer.

(Devralındığı yer: Encoding)
GetChars(Byte[], Int32, Int32, Char[], Int32)

Belirtilen bayt dizisinden belirtilen karakter dizisine bayt dizisinin kodunu çözer.

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

Türetilmiş bir sınıfta geçersiz kılındığında, belirtilen salt okunur bayt aralığındaki tüm baytların kodunu bir karakter aralığına çözer.

(Devralındığı yer: Encoding)
GetDecoder()

UTF-32 kodlanmış bayt dizisini Unicode karakter dizisine dönüştüren bir kod çözücü alır.

GetEncoder()

Unicode karakter dizisini UTF-32 kodlanmış bayt dizisine dönüştüren bir kodlayıcı alır.

GetHashCode()

Geçerli örneğin karma kodunu döndürür.

GetMaxByteCount(Int32)

Belirtilen karakter sayısını kodlayarak üretilen en fazla bayt sayısını hesaplar.

GetMaxCharCount(Int32)

Belirtilen bayt sayısının kodunu çözerek üretilen en fazla karakter sayısını hesaplar.

GetPreamble()

Nesne bir tane sağlamak üzere yapılandırılmışsa UTF32Encoding UTF-32 biçiminde kodlanmış bir Unicode bayt sırası işareti döndürür.

GetString(Byte*, Int32)

Türetilmiş bir sınıfta geçersiz kılındığında, belirtilen adresten başlayan belirtilen bayt sayısının kodunu bir dizeye çözer.

(Devralındığı yer: Encoding)
GetString(Byte[])

Türetilmiş bir sınıfta geçersiz kılındığında, belirtilen bayt dizisindeki tüm baytların kodunu bir dizeye çözer.

(Devralındığı yer: Encoding)
GetString(Byte[], Int32, Int32)

Bayt dizisinden dizeye bayt aralığının kodunu çözer.

GetString(ReadOnlySpan<Byte>)

Türetilmiş bir sınıfta geçersiz kılındığında, belirtilen bayt aralığındaki tüm baytların kodunu bir dizeye çözer.

(Devralındığı yer: Encoding)
GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
IsAlwaysNormalized()

Varsayılan normalleştirme formunu kullanarak geçerli kodlamanın her zaman normalleştirilip normalleştirilmediğini belirten bir değer alır.

(Devralındığı yer: Encoding)
IsAlwaysNormalized(NormalizationForm)

Türetilmiş bir sınıfta geçersiz kılındığında, belirtilen normalleştirme formunu kullanarak geçerli kodlamanın her zaman normalleştirilip normalleştirilmediğini belirten bir değer alır.

(Devralındığı yer: Encoding)
MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)
TryGetBytes(ReadOnlySpan<Char>, Span<Byte>, Int32)

Hedef yeterince büyükse, belirtilen salt okunur span'dan bir dizi karakter içeren bayt aralığına kodlar.

(Devralındığı yer: Encoding)
TryGetChars(ReadOnlySpan<Byte>, Span<Char>, Int32)

Hedef yeterince büyükse, belirtilen salt okunur yayılma alanından bir dizi karakter aralığına kod çözer.

(Devralındığı yer: Encoding)

Uzantı Metotları

GetBytes(Encoding, ReadOnlySequence<Char>)

Belirtilen ReadOnlySequence<T> öğesini kullanarak bir Byte diziye kodlar Encoding.

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

Belirtilen ReadOnlySequence<T> öğesini kullanarak Encoding öğesinin bytekodunu çözer ve sonucu öğesine writeryazar.

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

Belirtilen ReadOnlySequence<T> öğesini kullanarak Encoding öğesini olarak bytekodlar ve sonucu olarak bytesdöndürür.

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

Belirtilen ReadOnlySpan<T> öğesini kullanarak Encoding öğesini olarak bytekodlar ve sonucu öğesine writeryazar.

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

Belirtilen ReadOnlySequence<T> öğesini kullanarak Encoding öğesinin charkodunu çözer ve sonucu öğesine writeryazar.

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

Belirtilen ReadOnlySequence<T>charöğesini kullanarak Encoding öğesinin kodunu çözer ve sonucu olarak charsdöndürür.

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

Belirtilen ReadOnlySpan<T> öğesini kullanarak Encoding öğesinin charkodunu çözer ve sonucu öğesine writeryazar.

GetString(Encoding, ReadOnlySequence<Byte>)

Belirtilen ReadOnlySequence<T> öğesini kullanarak öğesinin kodunu bir String içine Encodingçözer.

Şunlara uygulanır

Ayrıca bkz.