Как обратить произвольный MemoryStream в строку и обратно?
Нужны надежные функции преобразования:
MemoryStreamToString();
StringToMemoryStream();
То что делал я работает не всегда. Для сравнения использовал .ToArray():
var array1 = originalMemoryStream.ToArray();// byte[726]
var array2 = restoredMemoryStream.ToArray();// byte[1333]
bool isEqual = array1.SequenceEqual(array2);//false
Тут восстановленный стрим не идентичен оригиналу. А бывают ситуации когда идентичен. Нужен способ который не подведет.
Пробовал разные кодировки вставлять в StreamReader/StreamWriter. При Encoding.UTF8 массивы разной длины как и раньше.. При new UTF8Encoding(false), особых изменений нет. При Encoding.ASKII массивы из стримов одинаковой длины(обычно 726), но массивы разные, а строка такой же длины как и массивы. Заметил в массиве из восстановленного стрима много значений "63" - это знаки вопроса в ASKII.
Ответы (1 шт):
Найдены подобные вопросы с необходимым ответом:
Но сейчас не могу расписать тонкости кодировок и почему все именно так.