Как преобразовать массив байтов в строку [дубликат]

StackOverflow https://stackoverflow.com//questions/11654562

  •  11-12-2019
  •  | 
  •  

Вопрос

Я создал массив байтов с двумя строками.Как преобразовать массив байтов в строку?

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 (не поддерживается).

Это было полезно?

Решение

В зависимости от кодировки, которую вы хотите использовать:

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

Другие советы

Предполагая, что вы используете кодировку 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);

Вы можете сделать это, не занимаясь кодированием, используя Блоккопировать:

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

Чтобы преобразовать byte[] в строку[], просто используйте строку ниже.

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);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top