关于C#:如何将字节数组转换为字符串

How convert byte array to string

本问题已经有最佳答案,请猛点这里访问。

我用两个字符串创建了一个字节数组。如何将字节数组转换为字符串?

1
2
3
4
5
6
var binWriter = new BinaryWriter(new MemoryStream());
binWriter.Write("value1");
binWriter.Write("value2");
binWriter.Seek(0, SeekOrigin.Begin);

byte[] result = reader.ReadBytes((int)binWriter.BaseStream.Length);

我想把result转换成字符串。我可以用BinaryReader来完成。但我不能使用BinaryReader(它不支持)。


根据您希望使用的编码:

1
var str = System.Text.Encoding.Default.GetString(result);


假设您使用的是UTF-8编码:

1
2
3
4
5
6
7
string convert ="This is the string to be converted";

// From string to byte array
byte[] buffer = System.Text.Encoding.UTF8.GetBytes(convert);

// From byte array to string
string s = System.Text.Encoding.UTF8.GetString(buffer, 0, buffer.Length);


您可以使用blockcopy在不处理编码的情况下执行此操作:

1
2
3
char[] chars = new char[bytes.Length / sizeof(char)];
System.Buffer.BlockCopy(bytes, 0, chars, 0, bytes.Length);
string str = new string(chars);


要将字节[]转换为字符串[],只需使用下面的行。

1
2
3
4
5
6
7
8
9
10
11
byte[] fileData; // Some byte array
//Convert byte[] to string[]
var table = (Encoding.Default.GetString(
                 fileData,
                 0,
                 fileData.Length - 1)).Split(new string[] {"

"
,"
"
,"
"
},
                                             StringSplitOptions.None);