将Byte数组转化为String
来源:互联网 发布:sql developer 快捷键 编辑:程序博客网 时间:2024/04/30 16:30
问题
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的重载版本。
参考
- 将Byte数组转化为String
- 将Byte数组转化为String
- [转贴]将Byte数组转化为String
- 将Byte数组转化为String
- 将Byte数组转化为String
- 将Byte数组转化为String
- 将Byte数组转化为String
- 将Byte数组转化为String
- 将Byte数组转化为String
- Byte数组转化为String
- 将byte数组转化为string,及其还原。
- C# 将byte[]转化为string
- java 把 byte[] 数组转化为String
- Java 中String转化为byte数组
- 将inputstream转化为数组byte[]
- 将String转化为String数组
- 将String 转换为byte[]数组
- Go语言实现将[]string转化为[]byte
- DataGrid常见解决方案(三)--在DataGrid中选择,确认,删除多行复选框列表
- DataGrid常见关注问题解决方案
- 1
- DataGrid中鼠标单击行改变颜色
- 可以限制中文输入的文本框 sunnyxing [原作]
- 将Byte数组转化为String
- 将人民币的数字表示转化成大写表示(C#版)
- 如何给DataGrid添加两个的题头分类显示 cuike519 [原作]
- 把金额类型转换成大写和英文
- 读书笔记-Weinberg"成为技术领导者"
- 创建可编辑的xml文档(之四) 删除、改名、插入操作 YAOTIEBING [翻译]
- 带图标和自定义颜色的ListBox yzx110 [原作]
- 给DataGrid加上右键菜单 2066 [原作]
- 在DataGrid中创建一个弹出式窗口