Encoding.GetString Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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 bytes
geç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.