程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> 將Byte數組轉化為String

將Byte數組轉化為String

編輯:.NET實例教程
問題

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。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved