Aracılığıyla paylaş


Encoding.GetString Yöntem

Tanım

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

Aşırı Yüklemeler

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.

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.

GetString(Byte*, Int32)

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

GetString(Byte[], Int32, Int32)

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

GetString(Byte[])

Kaynak:
Encoding.cs
Kaynak:
Encoding.cs
Kaynak:
Encoding.cs

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

public:
 virtual System::String ^ GetString(cli::array <System::Byte> ^ bytes);
public virtual string GetString (byte[] bytes);
abstract member GetString : byte[] -> string
override this.GetString : byte[] -> string
Public Overridable Function GetString (bytes As Byte()) As String

Parametreler

bytes
Byte[]

Kod çözme bayt sırasını içeren bayt dizisi.

Döndürülenler

Belirtilen bayt dizisinin kodunu çözmenin sonuçlarını içeren bir dize.

Özel durumlar

Bayt dizisi geçersiz Unicode kod noktaları içeriyor.

bytes, null değeridir.

Bir geri dönüş oluştu (daha fazla bilgi için bkz. .NET'te Karakter Kodlama)

-Ve-

DecoderFallback olarak ayarlanır DecoderExceptionFallback.

Örnekler

Aşağıdaki örnek, bir nesne tarafından temsil edilen ikili dosyadan UTF-8 kodlanmış dizesini FileStream okur. 2.048 bayttan küçük dosyalar için dosyanın tamamının içeriğini bir bayt dizisine okur ve kod çözme işlemini gerçekleştirmek için yöntemini çağırır GetString(Byte[]) . Daha büyük dosyalar için bir bayt dizisine bir kerede 2.048 bayt okur, dizide kaç karakter olduğunu belirlemek için yöntemini çağırır Decoder.GetCharCount(Byte[], Int32, Int32) ve ardından kod çözme işlemini gerçekleştirmek için yöntemini çağırır Decoder.GetChars(Byte[], Int32, Int32, Char[], Int32) .

using System;
using System.IO;
using System.Text;

public class Example
{
   const int MAX_BUFFER_SIZE = 2048;
   static Encoding enc8 = Encoding.UTF8;

   public static void Main()
   {
      FileStream fStream = new FileStream(@".\Utf8Example.txt", FileMode.Open);
      string contents = null;
      
      // If file size is small, read in a single operation.
      if (fStream.Length <= MAX_BUFFER_SIZE) {
         Byte[] bytes = new Byte[fStream.Length];
         fStream.Read(bytes, 0, bytes.Length);
         contents = enc8.GetString(bytes);
      }
      // If file size exceeds buffer size, perform multiple reads.
      else {
         contents = ReadFromBuffer(fStream);
      }
      fStream.Close();
      Console.WriteLine(contents);
   }

   private static string ReadFromBuffer(FileStream fStream)
   {
        Byte[] bytes = new Byte[MAX_BUFFER_SIZE];
        string output = String.Empty;
        Decoder decoder8 = enc8.GetDecoder();
      
        while (fStream.Position < fStream.Length) {
           int nBytes = fStream.Read(bytes, 0, bytes.Length);
           int nChars = decoder8.GetCharCount(bytes, 0, nBytes);
           char[] chars = new char[nChars];
           nChars = decoder8.GetChars(bytes, 0, nBytes, chars, 0);
           output += new String(chars, 0, nChars);                                                     
        }
        return output;
    }
}
// The example displays the following output:
//     This is a UTF-8-encoded file that contains primarily Latin text, although it
//     does list the first twelve letters of the Russian (Cyrillic) alphabet:
//     
//     А б в г д е ё ж з и й к
//     
//     The goal is to save this file, then open and decode it as a binary stream.
Imports System.IO
Imports System.Text

Module Example
   Const MAX_BUFFER_SIZE As Integer = 2048
   
   Dim enc8 As Encoding = Encoding.UTF8
      
   Public Sub Main()
      Dim fStream As New FileStream(".\Utf8Example.txt", FileMode.Open)
      Dim contents As String = Nothing
      
      ' If file size is small, read in a single operation.
      If fStream.Length <= MAX_BUFFER_SIZE Then
         Dim bytes(CInt(fStream.Length) - 1) As Byte
         fStream.Read(bytes, 0, bytes.Length)
         contents = enc8.GetString(bytes)
      ' If file size exceeds buffer size, perform multiple reads.
      Else
         contents = ReadFromBuffer(fStream)
      End If
      fStream.Close()
      Console.WriteLine(contents)
   End Sub   

    Private Function ReadFromBuffer(fStream As FileStream) As String
        Dim bytes(MAX_BUFFER_SIZE) As Byte
        Dim output As String = String.Empty
        Dim decoder8 As Decoder = enc8.GetDecoder()
      
        Do While fStream.Position < fStream.Length
           Dim nBytes As Integer = fStream.Read(bytes, 0, bytes.Length)
           Dim nChars As Integer = decoder8.GetCharCount(bytes, 0, nBytes)
           Dim chars(nChars - 1) As Char
           nChars = decoder8.GetChars(bytes, 0, nBytes, chars, 0)
           output += New String(chars, 0, nChars)                                                     
        Loop
        Return output
    End Function
End Module
' The example displays the following output:
'     This is a UTF-8-encoded file that contains primarily Latin text, although it
'     does list the first twelve letters of the Russian (Cyrillic) alphabet:
'     
'     ? ? ? ? ? ? ? ? ? ? ? ?
'     
'     The goal is to save this file, then open and decode it as a binary stream.

Örnekte, utf-8 kodlanmış Utf8Example.txt adlı bir dosyaya kaydedilmesi gereken aşağıdaki metin kullanılır.

This is a UTF-8-encoded file that contains primarily Latin text, although it
does list the first twelve letters of the Russian (Cyrillic) alphabet:

А б в г д е ё ж з и й к

The goal is to save this file, then open and decode it as a binary stream.

Açıklamalar

Dönüştürülecek veriler yalnızca sıralı bloklarda (akıştan okunan veriler gibi) kullanılabiliyorsa veya veri miktarı daha küçük bloklara bölünmesi gereken kadar büyükse, türetilmiş bir sınıfın yöntemi tarafından GetDecoder döndürülen nesneyi kullanmalısınızDecoder.

Kod çözme teknikleri ve dikkat edilmesi gerekenler hakkında bir tartışma için başvuru konusunun Açıklamalar bölümüne Encoding.GetChars bakın.

Belirli Encoding bir uygulama için yönteminin GetString kesin davranışının, bu nesne için tanımlanan geri dönüş stratejisine bağlı olduğunu Encoding unutmayın. Daha fazla bilgi için .NET'te Karakter Kodlama konusunun "Geri Dönüş Stratejisi Seçme" bölümüne bakın.

Ayrıca bkz.

Şunlara uygulanır

GetString(ReadOnlySpan<Byte>)

Kaynak:
Encoding.cs
Kaynak:
Encoding.cs
Kaynak:
Encoding.cs

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

public:
 System::String ^ GetString(ReadOnlySpan<System::Byte> bytes);
public string GetString (ReadOnlySpan<byte> bytes);
member this.GetString : ReadOnlySpan<byte> -> string
Public Function GetString (bytes As ReadOnlySpan(Of Byte)) As String

Parametreler

bytes
ReadOnlySpan<Byte>

Unicode dizesinin kodunu çözmek için salt okunur bayt aralığı.

Döndürülenler

Sağlanan salt okunur yayılma alanından kodu çözülen baytları içeren bir dize.

Açıklamalar

GetString yöntemi performansı iyileştirmek için tasarlanmıştır. Yönetilen bayt dizisi oluşturup kodunu çözmek yerine, ara nesneler oluşturmak zorunda kalmadan bu yöntemi çağırabilirsiniz.

Dönüştürülecek veriler yalnızca sıralı bloklarda (akıştan okunan veriler gibi) kullanılabiliyorsa veya veri miktarı daha küçük bloklara bölünmesi gereken kadar büyükse, türetilmiş bir sınıfın yöntemi tarafından GetDecoder döndürülen nesneyi kullanmalısınızDecoder.

Kod çözme teknikleri ve dikkat edilmesi gerekenler hakkında bir tartışma için başvuru konusunun Açıklamalar bölümüne Encoding.GetChars bakın.

Belirli Encoding bir uygulama için yönteminin GetString kesin davranışının, bu nesne için tanımlanan geri dönüş stratejisine bağlı olduğunu Encoding unutmayın. Daha fazla bilgi için .NET'te Karakter Kodlama konusunun "Geri Dönüş Stratejisi Seçme" bölümüne bakın.

Şunlara uygulanır

GetString(Byte*, Int32)

Kaynak:
Encoding.cs
Kaynak:
Encoding.cs
Kaynak:
Encoding.cs

Önemli

Bu API, CLS uyumlu değildir.

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

public:
 System::String ^ GetString(System::Byte* bytes, int byteCount);
[System.CLSCompliant(false)]
[System.Security.SecurityCritical]
public string GetString (byte* bytes, int byteCount);
[System.CLSCompliant(false)]
public string GetString (byte* bytes, int byteCount);
[System.CLSCompliant(false)]
[System.Security.SecurityCritical]
[System.Runtime.InteropServices.ComVisible(false)]
public string GetString (byte* bytes, int byteCount);
[<System.CLSCompliant(false)>]
[<System.Security.SecurityCritical>]
member this.GetString : nativeptr<byte> * int -> string
[<System.CLSCompliant(false)>]
member this.GetString : nativeptr<byte> * int -> string
[<System.CLSCompliant(false)>]
[<System.Security.SecurityCritical>]
[<System.Runtime.InteropServices.ComVisible(false)>]
member this.GetString : nativeptr<byte> * int -> string

Parametreler

bytes
Byte*

Bayt dizisinin işaretçisi.

byteCount
Int32

Kodu çözecek bayt sayısı.

Döndürülenler

Belirtilen bayt dizisinin kodunu çözmenin sonuçlarını içeren bir dize.

Öznitelikler

Özel durumlar

bytes null işaretçidir.

byteCount, sıfırdan küçüktür.

Tam bir açıklama için bir geri dönüş oluştu (bkz . .NET'te Karakter Kodlaması)

-Ve-

DecoderFallback olarak ayarlanır DecoderExceptionFallback.

Açıklamalar

yöntemi GetString , bayt dizisine yerel bir işaretçiniz olduğunda performansı iyileştirmek için tasarlanmıştır. Yönetilen bayt dizisi oluşturup kodunu çözmek yerine, ara nesneler oluşturmak zorunda kalmadan bu yöntemi çağırabilirsiniz.

Dönüştürülecek veriler yalnızca sıralı bloklarda (akıştan okunan veriler gibi) kullanılabiliyorsa veya veri miktarı daha küçük bloklara bölünmesi gereken kadar büyükse, türetilmiş bir sınıfın yöntemi tarafından GetDecoder döndürülen nesneyi kullanmalısınızDecoder.

Kod çözme teknikleri ve dikkat edilmesi gerekenler hakkında bir tartışma için başvuru konusunun Açıklamalar bölümüne Encoding.GetChars bakın.

Belirli Encoding bir uygulama için yönteminin GetString kesin davranışının, bu nesne için tanımlanan geri dönüş stratejisine bağlı olduğunu Encoding unutmayın. Daha fazla bilgi için .NET'te Karakter Kodlama konusunun "Geri Dönüş Stratejisi Seçme" bölümüne bakın.

Ayrıca bkz.

Şunlara uygulanır

GetString(Byte[], Int32, Int32)

Kaynak:
Encoding.cs
Kaynak:
Encoding.cs
Kaynak:
Encoding.cs

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

public:
 virtual System::String ^ GetString(cli::array <System::Byte> ^ bytes, int index, int count);
public virtual string GetString (byte[] bytes, int index, int count);
abstract member GetString : byte[] * int * int -> string
override this.GetString : byte[] * int * int -> string
Public Overridable Function GetString (bytes As Byte(), index As Integer, count As Integer) As String

Parametreler

bytes
Byte[]

Kod çözme bayt sırasını içeren bayt dizisi.

index
Int32

Kodunu çözmek için ilk bayt dizini.

count
Int32

Kodu çözecek bayt sayısı.

Döndürülenler

Belirtilen bayt dizisinin kodunu çözmenin sonuçlarını içeren bir dize.

Özel durumlar

Bayt dizisi geçersiz Unicode kod noktaları içeriyor.

bytes, null değeridir.

index veya count sıfırdan küçüktür.

-veya-

index ve count içinde bytesgeçerli bir aralığı ifade etmeyin.

Bir geri dönüş oluştu (daha fazla bilgi için bkz. .NET'te Karakter Kodlama)

-Ve-

DecoderFallback olarak ayarlanır DecoderExceptionFallback.

Örnekler

Aşağıdaki örnek, bir nesne tarafından temsil edilen ikili dosyadan UTF-8 kodlanmış dizesini FileStream okur. 2.048 bayttan küçük dosyalar için dosyanın tamamının içeriğini bir bayt dizisine okur ve kod çözme işlemini gerçekleştirmek için yöntemini çağırır GetString(Byte[], Int32, Int32) . Daha büyük dosyalar için bir bayt dizisine bir kerede 2.048 bayt okur, dizide kaç karakter olduğunu belirlemek için yöntemini çağırır Decoder.GetCharCount(Byte[], Int32, Int32) ve ardından kod çözme işlemini gerçekleştirmek için yöntemini çağırır Decoder.GetChars(Byte[], Int32, Int32, Char[], Int32) .

using System;
using System.IO;
using System.Text;

public class Example
{
   const int MAX_BUFFER_SIZE = 2048;
   static Encoding enc8 = Encoding.UTF8;
   static byte[] bytes = new byte[MAX_BUFFER_SIZE]; 

   public static void Main()
   {
      FileStream fStream = new FileStream(@".\Utf8Example.txt", FileMode.Open);
      string contents = null;
      
      // If file size is small, read in a single operation.
      if (fStream.Length <= MAX_BUFFER_SIZE) {
         int bytesRead = fStream.Read(bytes, 0, bytes.Length);
         contents = enc8.GetString(bytes, 0, bytesRead);
      }   
      // If file size exceeds buffer size, perform multiple reads.
      else {
         contents = ReadFromBuffer(fStream);
      }
      fStream.Close();
      Console.WriteLine(contents);
   }

    private static string ReadFromBuffer(FileStream fStream)
    {
        string output = String.Empty;
        Decoder decoder8 = enc8.GetDecoder();
      
        while (fStream.Position < fStream.Length) {
           int nBytes = fStream.Read(bytes, 0, bytes.Length);
           int nChars = decoder8.GetCharCount(bytes, 0, nBytes);
           char[] chars = new char[nChars];
           nChars = decoder8.GetChars(bytes, 0, nBytes, chars, 0);
           output += new String(chars, 0, nChars);                                                     
        }
        return output;
    }   
}
// The example displays the following output:
//     This is a UTF-8-encoded file that contains primarily Latin text, although it
//     does list the first twelve letters of the Russian (Cyrillic) alphabet:
//     
//     А б в г д е ё ж з и й к
//     
//     The goal is to save this file, then open and decode it as a binary stream.
Imports System.IO
Imports System.Text

Module Example
   Const MAX_BUFFER_SIZE As Integer = 2048
   
   Dim enc8 As Encoding = Encoding.UTF8
   Dim bytes(MAX_BUFFER_SIZE -1) As Byte
      
   Public Sub Main()
      Dim fStream As New FileStream(".\Utf8Example.txt", FileMode.Open)
      Dim contents As String = Nothing
      
      ' If file size is small, read in a single operation.
      If fStream.Length <= MAX_BUFFER_SIZE Then
         
         Dim bytesRead As Integer = fStream.Read(bytes, 0, bytes.Length)
         contents = enc8.GetString(bytes, 0, bytesRead)
      ' If file size exceeds buffer size, perform multiple reads.
      Else
         contents = ReadFromBuffer(fStream)
      End If
      fStream.Close()
      Console.WriteLine(contents)
   End Sub   

    Private Function ReadFromBuffer(fStream As FileStream) As String
        Dim bytes(MAX_BUFFER_SIZE) As Byte
        Dim output As String = String.Empty
        Dim decoder8 As Decoder = enc8.GetDecoder()
      
        Do While fStream.Position < fStream.Length
           Dim nBytes As Integer = fStream.Read(bytes, 0, bytes.Length)
           Dim nChars As Integer = decoder8.GetCharCount(bytes, 0, nBytes)
           Dim chars(nChars - 1) As Char
           nChars = decoder8.GetChars(bytes, 0, nBytes, chars, 0)
           output += New String(chars, 0, nChars)                                                     
        Loop
        Return output
    End Function
End Module
' The example displays the following output:
'     This is a UTF-8-encoded file that contains primarily Latin text, although it
'     does list the first twelve letters of the Russian (Cyrillic) alphabet:
'     
'     А б в г д е ё ж з и й к
'     
'     The goal is to save this file, then open and decode it as a binary stream.

Örnekte, utf-8 kodlanmış Utf8Example.txt adlı bir dosyaya kaydedilmesi gereken aşağıdaki metin kullanılır.

This is a UTF-8-encoded file that contains primarily Latin text, although it
does list the first twelve letters of the Russian (Cyrillic) alphabet:

А б в г д е ё ж з и й к

The goal is to save this file, then open and decode it as a binary stream.

Açıklamalar

Dönüştürülecek veriler yalnızca sıralı bloklarda (örneğin, bir akıştan okunan verilerde) kullanılabiliyorsa veya veri miktarı daha küçük bloklara bölünmesi gereken kadar büyükse, türetilmiş bir sınıfın sırasıyla yöntemi veya yöntemi tarafından GetDecoder sağlanan veya GetEncoderEncoder kullanmanız Decoder gerekir.

Kod çözme teknikleri ve dikkat edilmesi gerekenler hakkında bir tartışma için başvuru konusunun Açıklamalar bölümüne Encoding.GetChars bakın.

Ayrıca bkz.

Şunlara uygulanır