Скорее всего, это неправильная кодировка.
Но если вы используете этот код для получения блоков байтов (разделенных по протоколу), у вас будет серьезный недостаток: нет гарантии, что блок был независимо закодирован.
Простой случай: граница 2 блоков прорезает многобайтовый кодированный символ.
Лучшее решение: присоедините TextReader к вашему потоку.