Ваша проблема не в чтении.
Это потому, что кодировка консольного приложения по умолчанию не поддерживает иврит.
В Консольном приложении вы можете изменить кодировку, добавив следующую строку в начале вашего кода:
Console.OutputEncoding = Encoding.GetEncoding("Windows-1255");
Редактировать: очевидно
Вы не можете печатать символы Unicode в консоли, она поддерживает только те символы, которые доступны на текущей кодовой странице.Символы, которые недоступны, преобразуются в ближайший эквивалент или знак вопроса.
, чтобы вы могли выполнить небольшой "взлом" и просто изменить поток вывода defualt в файл:
Console.SetOut(new StreamWriter(File.Create("d:/your_output.txt"), Encoding.UTF8) { AutoFlush=true});
и к концу прогона он все туда запишет.
это "быстрое и грязное" решение для постоянного решения, рассмотрите возможность использования библиотеки журналирования какlog4net.