преобразовать строку в байт[]

#c#

#c#

Вопрос:

Как преобразовать строку в байт [] в C #?

Комментарии:

1. Имейте в виду, что массив байтов, который вы получаете, полностью зависит от используемой кодировки строки — текстовое представление строки теряется, если вы не знаете, как она кодируется.

Ответ №1:

используя byte[] data = Encoding.UTF8.GetBytes(myString);

Комментарии:

1. Да, но на самом деле я никогда и близко не подходил к использованию каких-либо определенных символов UTF16 на сегодняшний день и UTF8. getBytes всегда выполнял свою работу (особенно когда производительность критична)

2. Я знаю, но я предполагал, что OP хотел фактические байты, которые содержит строка.

Ответ №2:

Обратите внимание на это.ЧИСТЫЕ строки кодируются как Unicode (UTF-16):

 byte[] bytes = Encoding.Unicode.GetBytes("a string");
  

Ответ №3:

Вы можете использовать LINQ:

 var input     = "myValue";
var byteInput = input.ToCharArray ().Select ( character => ( byte ) character ).ToArray ();

Assert.AreEqual ( input, new string ( byteInput.Select ( character => ( char ) character ).ToArray () ) );
  

И добавьте кодировку до или после, если вы хотите сделать кодировку.