新客网WWW.XKER.COM:致力做中国最专业的网络学院!
学院: 操作系统 - 网络应用 - 服务器 - 网络安全 - 工具软件 - 办公软件 - Web开发 - 数据库 - 网页设计 - 图形图像 - 媒体动画 - 硬件学堂 - 存储频道 - QQ专区
您的位置:首页 > 软件开发 > .Net开发 > Asp.net教程 > 正文:将Byte数组转化为String

将Byte数组转化为String

新客网 XKER.COM 2004-06-17 来源: 收藏本文
问题

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的重载版本。

收藏】 【评论】 【推荐】 【投稿】 【打印】 【关闭
发表评论
要记得去论坛讨论,点击注册新会员匿名评论
评论内容:不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
阅读排行
随机推荐
实用信息推荐