Как читать специальные символы, такие как é, â и другие в С#
Я не могу прочитать эти специальные символы
Я пробовал вот так
Первый способ #
string xmlFile = File.ReadAllText(fileName);
Второй способ #
FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);
StreamReader r = new StreamReader(fs);
string s = r.ReadToEnd();
Но оба утверждения не понимают этих специальных символов.
Как читать?
UPDATE ###
Я также пробую все кодирование с помощью
string xmlFile = File.ReadAllText(fileName, Encoding. );
но все же не понимают эти специальные символы.
Ответы
Ответ 1
Нет такой вещи, как "специальный символ". Скорее всего, это расширенные символы ascii из набора latin1 (iso-8859-1).
Вы можете прочитать их, явно передав кодировку считывателю потока (иначе он будет считать UTF8)
using (StreamReader r = new StreamReader(fileName, Encoding.GetEncoding("iso-8859-1")))
r.ReadToEnd();
Ответ 2
StreamReader sr = new StreamReader(stream, Encoding.UTF8)
Ответ 3
Вы должны сообщить StreamReader, что вы читаете Unicode так
StreamReader sr = new StreamReader(stream, Encoding.Unicode);
Если ваш файл имеет некоторую другую кодировку, укажите ее как второй параметр