如何将字节数组转换为字符串

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

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);

我想把结果转换为字符串。我可以用二进制阅读器来做,但我不能用二进制阅读器(不支持)。

对该问题的评论 (4)
解决办法

取决于你想使用的编码。

var str = System.Text.Encoding.Default.GetString(result);
评论(8)

假设你使用的是UTF-8编码。

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);
评论(4)

你可以通过使用BlockCopy来实现,而不需要处理编码问题。

char[] chars = new char[bytes.Length / sizeof(char)];
System.Buffer.BlockCopy(bytes, 0, chars, 0, bytes.Length);
string str = new string(chars);
评论(5)

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

byte[] fileData; // Some byte array
//Convert byte[] to string[]
var table = (Encoding.Default.GetString(
                 fileData, 
                 0, 
                 fileData.Length - 1)).Split(new string[] { "\r\n", "\r", "\n" },
                                             StringSplitOptions.None);
评论(0)