StreamReader имеет конструктор , который принимает кодировку, если вы знаете кодировку файла, вы должны передать ее в конструктор StreamReader
objReader = New StreamReader(filepath, Encoding.UTF32)
EDIT
Вы говорите в комментарии, что файл закодирован как UCS-2 из Википедия
Более старый UCS-2 (2-байтовый универсальный набор символов) является аналогичным
кодировка символов, которая была заменена UTF-16 в версии 2.0
Стандарт Unicode в июле 1996 года. 2 Он производит формат фиксированной длины
просто используя кодовую точку в качестве 16-битной кодовой единицы и производит
точно такой же результат, как UTF-16 для 96,9% всех кодовых точек в
диапазон 0-0xFFFF, включая все символы, которым был присвоен
значение в то время.
В этом случае вы можете попытаться декодировать, используя UTF-16, который называется Unicode с System.Text.Encoding , поэтому попробуйте
objReader = New StreamReader(filepath, Encoding.Unicode)
FYI
Unicode - это стандарт, который имеет различные кодировки, включая
- UTF-8
- UTF-16 (BigEndian)
- UTF-16 (LittleEndian)
- UTF-32 (BigEndian)
- UTF-32 (LittleEndian)
Для Microsoft вызов UTF-16 Unicode немного вводит в заблуждение, но не является неточным, UTF-16 - это одна из возможных кодировок для Unicode.