Сложно дать ответ, так как неясно, для чего это нужно.
То, что вы видите, не обязательно является проблемой кодирования.Если вы работаете с данными изображения, ваш байтовый массив обязательно должен содержать несколько нулей.Рассмотрим следующий пример:
byte[] b = new byte[] { 65, 0, 66 };
string s = System.Text.Encoding.ASCII.GetString(b);
System.Diagnostics.Debug.WriteLine(s);
Это дает вывод A
вместо трех символов, как вы могли бы ожидать, поскольку символ 2 является нулевым символом.Но три символа действительно хранятся в строке, так как при наведении курсора мыши на s
в строке три выше появляется всплывающая подсказка "A\0B"
.Поэтому, возможно, ваше сравнение делает что-то не так, @Damokles уже спросил, что именно вы делаете в этом отношении.