Кодировка файла при чтении файла с StreamReader - PullRequest
1 голос
/ 12 марта 2009

У меня сейчас проблема с тем, что символ Цельсия читается как C вместо ° C.

Похоже на кодировку преступника. Я пытался сделать это:

            using (StreamReader sr = new StreamReader(this._inFilePath,System.Text.Encoding.Unicode ,true))

вместо

            using (StreamReader sr = new StreamReader(this._inFilePath))

но я теперь получаю мусор .... оригинальная кодировка файла должна соответствовать кодировке StreamReader? Я использую компактный фреймворк 2.0.

Я нашел это в сети, но если я использую это, я прочитаю все это в байтовый массив, определю конец каждой строки, преобразую его в Unicode, а затем продолжу логику программы. Кто-нибудь использовал этот класс?

1 Ответ

2 голосов
/ 12 марта 2009

Да, вам нужно указать правильную кодировку при создании StreamReader. .NET может определить для вас кодировку. Существуют перегрузки для конструктора StreamReader, которые принимают логический параметр, который можно использовать для запроса этого поведения.

public StreamReader (строковый путь, bool DetectionEncodingFromByteOrderMarks)

...