Я продолжаю получать недопустимую ошибку в Base64, хотя я не должен.
Программа принимает файл XML и экспортирует его в документ. Если пользователь хочет, он также сжимает файл. Сжатие работает отлично и возвращает строку Base64, которая закодирована в UTF-8 и записывается в файл.
Когда его время перезагрузить документ в программу, я должен проверить, сжат ли он или нет, код просто:
byte[] gzBuffer = System.Convert.FromBase64String(text);
return "1F-8B-08" == BitConverter.ToString(new List<Byte>(gzBuffer).GetRange(4, 3).ToArray());
Он проверяет начало строки, чтобы увидеть, есть ли в ней код GZips.
Теперь все, все мои тесты работают. Я беру строку, сжимаю ее, распаковываю и сравниваю с оригиналом. Проблема в том, когда я получаю строку, возвращаемую из набора записей ADO. Строка - это именно то, что было записано в файл (с добавлением "\ 0" в конце, но я не думаю, что даже что-то делает, даже урезал все еще бросает). Я даже копировал и вставлял всю строку в тестовый метод и сжимал/декомпрессировал это. Прекрасно работает.
Тесты пройдут, но код не сработает с использованием той же самой строки? Единственное различие заключается в том, чтобы просто объявить правильную строку и передать ее в я получаю один из возвращаемого из набора записей.
Любые идеи о том, что я делаю неправильно?