Как я могу написать response.binarywrite в строку

#c# #asp.net #binaryfiles

#c# #asp.net #двоичные файлы

Вопрос:

Мои данные сохраняются в моей базе данных как Longblob, и при сохранении я конвертирую их в байты и сохраняю сейчас, при извлечении мы можем получить эти данные, записав следующим образом

  Byte[] bytes = (Byte[])dt.Rows[0]["Data"];
                    Response.BinaryWrite(bytes);
  

Но что мне нужно, так это то, что мне нужно, чтобы данные в байтах были представлены в виде строки, возможно ли это

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

1. Являются ли двоичные данные просто строковыми символьными кодами (например, ASCII или UTF-8/16), или они каким-то образом закодированы (например, BASE 64)

Ответ №1:

Ну, являются ли данные закодированной строкой? Если это так, используйте что-то вроде

 string text = Encoding.UTF8.GetString(bytes);
  

… но убедитесь, что вы используете правильную кодировку.

Однако, если это произвольные двоичные данные, вам следует использовать base64 вместо этого:

 string text = Convert.ToBase64String(bytes);
  

Это даст вам полностью ASCII-строку, которую можно преобразовать обратно в исходный массив байтов с помощью Convert.FromBase64String .

Не зная, что такое ваши данные, невозможно сказать, какой из этих подходов подходит. Вы говорите, что преобразуете свои данные в байты при сохранении, но вы не сказали, как вы преобразовали свои данные в байты. По сути, вы хотите обратить вспять этот процесс, каким бы он ни был.

Ответ №2:

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

 string text = System.Text.Encoding.ASCII.GetString(myByteArray);
  

Ответ №3:

Я думаю, это то, что вам нужно: http://msdn.microsoft.com/en-us/library/744y86tc.aspx

Ответ №4:

Вы можете преобразовать массивы байтов в строки, используя System.Text.Encoding.Метод getString(byte[]), но вам нужно указать, в какой кодировке находятся байты. Среда CLR поставляется с несколькими кодировками по умолчанию (Encoding.UTF8, кодировка.ASCII и т.д.) Но в целом вам нужно быть очень осведомленным о том, какая кодировка использовалась для кодирования данных.