將Byte數組轉化為String

來源:互聯網
上載者:User
FCL得很多方法的傳回值都是包含字元的Byte數組而不是返回一個String,這樣的方法包含在如下的類中:

· System.Net.Sockets.Socket.Receive

· System.Net.Sockets.Socket.ReceiveFrom

· System.Net.Sockets.Socket.BeginReceive

· System.Net.Sockets.Socket.BeginReceiveFrom

· System.Net.Sockets.NetworkStream.Read

· System.Net.Sockets.NetworkStream.BeginRead

· System.IO.BinaryReader.Read

· System.IO.BinaryReader.ReadBytes

· System.IO.FileStream.Read

· System.IO.FileStream.BeginRead

· System.IO.MemoryStream // Constructor

· System.IO.MemoryStream.Read

· System.IO.MemoryStream.BeginRead

· System.Security.Cryptography.CryptoStream.Read

· System.Security.Cryptography.CryptoStream.BeginRead

· System.Diagnostics.EventLogEntry.Data

由這些方法返回的Byte數組中包含的通常是以ASCII編碼或是Unicode編碼的字元,很多時候,我們可能需要將這樣的Byte數群組轉換為一個String。

解決方案

將一個包含ASCII編碼字元的Byte數組轉化為一個完整的String,可以使用如下的方法:

using System;
using System.Text;

public static string FromASCIIByteArray(byte[] characters)
{
ASCIIEncoding encoding = new ASCIIEncoding( );
string constructedString = encoding.GetString(characters);
return (constructedString);
}

將一個包含Unicode編碼字元的Byte數組轉化為一個完整的String,可以使用如下的方法:

public static string FromUnicodeByteArray(byte[] characters)
{
UnicodeEncoding encoding = new UnicodeEncoding( );
string constructedString = encoding.GetString(characters);
return (constructedString);
}

討論

ASCIIEncoding類的GetString方法可以將byte數組中的7-BitsASCII字元轉換為一個String;任何大於127的值將被轉化為兩個字元。在System.Text命名空間中你可以找到ASCIIEncoding類,尋找該類的GetString函數你還可以發現這個函數有多種重載方式以支援一些附加的參數。這個方法的重載版本還可以將一個Byte數組中的一部分字元轉化為String。

將Byte數組轉化為String的GetString方法可以在System.Text命名空間的UnicodeEncoding類中找到,該方法將包含16-bitsUnicode字元的Byte數組轉化為String。同ASCIIEncoding類的GetString方法一樣,該方法也包含一個將Byte數組中的特定部分轉化為String的重載版本。  

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.