将Byte数组转化为String
生活随笔
收集整理的這篇文章主要介紹了
将Byte数组转化为String
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
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的重載版本。??
· 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的重載版本。??
總結
以上是生活随笔為你收集整理的将Byte数组转化为String的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: EMAIL发送系统(C#+基于SMTP认
- 下一篇: C# 2.0 的partial