将Byte数组转化为String-.NET教程,C#语言

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

转载于:https://www.cnblogs.com/Fly-sky/archive/2009/04/30/1446943.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值