#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 и т.д.) Но в целом вам нужно быть очень осведомленным о том, какая кодировка использовалась для кодирования данных.