Вам необходимо прочитать файл, используя правильную кодировку - по умолчанию файл будет читаться как UTF-8, если это неправильная кодировка, вы получите такие проблемы.
В этом примере я использую перегрузку конструктора, которая принимает кодировку, в данном случае UnicodeEncoding
, то есть UTF-16:
using(var streamReader = new StreamReader("file.txt", Encoding.UnicodeEncoding))
{
while (streamReader.Peek() >= 0)
{
var buffer = new char[1];
streamReader.Read(buffer, 0, buffer.Length);
Console.Write(buffer[0]);
}
}
В этом примере я использую кодовую страницу 860, соответствующую португальскому:
using(var streamReader = new StreamReader("file.txt", Encoding.GetEncoding(860)))
{
while (streamReader.Peek() >= 0)
{
var buffer = new char[1];
streamReader.Read(buffer, 0, buffer.Length);
Console.Write(buffer[0]);
}
}