2011-07-02 19 views

cevap

71

Kullanım:

System.Text.Encoding.ASCII.GetString(buf); bir bayt dizisine bir akıştan veri okumaya alternatif olarak

+1

Çalıştı! Ayrıca, giriş arabelleğinin herhangi bir alt kümesi *** üzerinde, iki ek parametreyle varyasyonu kullanarak çalışır: ['ASCIIEncoding.GetString (bayt [] bayt, int baytIndex, int byteCount)'] (https: // msdn .microsoft.com/en-us/library/38b953c8% ​​28v = vs.110% 29.aspx? cs-save-lang = 1 & cs-lang = csharp # code-snippet-1) (ya da tamponun sonu). (Açıkça sorulmasa da, daha kapsamlı bir cevap için bu bilgiyi cevabınıza dahil edebilirsiniz.) –

+0

@PeterMortensen: Teşekkürler, düzenleyiniz :) –

3
Encoding.ASCII.GetString(buf); 
3

, sen izin verebilir çerçeve her şeyi idare ve sadece bir ASCII ile kurulmuş bir StreamReader kullanmak dizede okunacak kodlama. Bu şekilde, uygun arabellek boyutunu veya daha büyük veri boyutlarını elde etmek için endişelenmenize gerek yoktur.

System.Text.Encoding.ASCII.GetString(buf); 

Ama bazen istediğiniz dize yerine garip bir sayı elde edecek:

using (var reader = new StreamReader(stream, Encoding.ASCII)) 
{ 
    string theString = reader.ReadToEnd(); 
    // do something with theString 
} 
8

kullanabilirsiniz. Bu durumda, orijinal dizginiz onu gördüğünüzde onaltılık bir karaktere sahip olabilir. o durum böyleyse, bu denemek isteyebilirsiniz:

System.Text.Encoding.UTF8.GetString(buf); 

Veya son çare olarak

:

System.Text.Encoding.Default.GetString(bytearray); 
1

Encoding.GetString Method (Byte[]) dönüştürme bir dize bayt.

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

Ad: System.Text
Montaj: (mscorlib.dll) mscorlib

sözdizimi

public virtual string GetString(byte[] bytes) 

Parametreler

bytes 
    Type: System.Byte[] 
    The byte array containing the sequence of bytes to decode. 

Dönüş Değeri

Tip:
bayt belirtilen diziyi deşifre sonuçlarını içeren bir dize.

durumlar

ArgumentException  - The byte array contains invalid Unicode code points. 
ArgumentNullException - bytes is null. 
DecoderFallbackException - A fallback occurred (see Character Encoding in the .NET Framework for complete explanation) or DecoderFallback is set to DecoderExceptionFallback. 

Açıklamalar veri dönüştürülecek ise

sadece ardışık bloklar halinde mevcut veya (örneğin bir akışından okumak verileri gibi) veri miktarı o kadar büyüktür ki daha küçük bl'ye bölünmelidir. ocks, uygulama Decoder veya GetDecoder yöntemi veya türetilmiş bir sınıfının türetilmiş GetEncoder yöntemi tarafından sağlanan Encoder kullanmanız gerekir.

çözme teknikleri ve düşüncelerin daha tartışma için Encoding.GetChars altında See Açıklamalar.